The present disclosure is related to functions traditionally associated with text pre-processing and optical character recognition (OCR) and specifically to segmenting lines and paragraphs and isolating handwritten and printed Chinese, Japanese and Korean (CJK) characters, glyphs or tetragraphs in images of documents containing CJK and other types of glyphic characters including documents compounded with characters of another language.
A document to be processed by OCR is initially and usually presented as an electronic image obtained from a camera, a scanner, or from conversion from one file format to another. In document processing, OCR is typically performed automatically or semi-automatically by a software program or a program module executed on a personal, mobile or other computer. However, there are many barriers to successful OCR, or OCR processing with a high degree of successful recognition, especially when attempting to recognize CJK and other types of glyphic characters.
Documents written by CJK speakers include characters of one or more glyphic languages and increasingly include non-standard characters (letters, symbols, numeral, punctuation marks) from one or more other languages including European languages. Such other non-CJK languages are generally based on a Latin, Cyrillic or other non-glyphic alphabet. Herein, reference is made to CJK characters, but such reference is shorthand for all varieties of glyphs, characters, tetragraphs, tetragrams, symbols, ideographs, ideograms and the like.
Written or printed text in a European language usually consists of repeated use of 100-150 standardized characters to form phonetic words. In contrast, texts in CJK languages usually use a subset of 30,000-40,000 available characters. A typical person routinely exposed to CJK characters encounters about 5,000 different CJK characters per day. Because of this characteristic of CJK and other glyph languages, it is difficult or impossible to recognize CJK texts by ordinary methods and techniques used in the recognition of characters and words in Roman, Latin or Cyrillic alphabets.
While reading CJK characters is a relatively easy task for a person, a machine often has difficulty isolating and recognizing CJK characters. One difficulty arises when alphanumeric and other non-CJK characters are mixed into traditional CJK writing. Another difficulty arises when the direction of writing cannot easily be ascertained. CJK writing often does not include any punctuation. CJK writing may be in different directions on a single page of text. Further difficulties can arise when both traditional and simplified CJK characters are mixed together, as is often the case in formal printed publications. Another kind of difficulty which is frequent for the Korean texts is a splicing (“gluing”) of neighbor characters.
There are various methods of attempting to overcome the difficulties in recognizing CJK characters. Analytically, recognition can generally be divided into two types of methods. The first type is by recognizing each character as it is being written—a form of online or active recognition. This type of recognition often involves analyzing strokes as they are entered by a stylus or finger on a touch-sensitive screen.
The second type of recognition involves segmenting individual CJK characters on each page of a document and then recognizing each character by matching it to a character in a database of characters. This type of recognition is termed offline recognition, and can be divided into handwritten character recognition (HCR) and printed character recognition (PCR). In each of these types of offline recognition, feature matching and/or structural analysis is performed. The techniques described herein apply to both HCR and PCR recognition, and generally to all types of offline and online recognition of CJK characters.
CJK characters generally occupy a square area in which the components or strokes of every character are written to fit. This technique allows CJK characters to maintain a uniform size and shape, especially with small printed characters in either sans-serif or serif style. The uniform size and shape allows dense printing of such CJK characters. However, the dense printing can be a source of trouble for segmenting and recognizing CJK characters, lines and paragraphs. There are many ways that segmenting, recognition and processing of CJK characters can be improved.
Embodiments and techniques described herein include improved methods for segmenting and processing CJK and other types of glyphic characters ahead of other steps traditionally associated with recognition, computer recognition, or optical character recognition (OCR) of text. One result of segmentation is the successful isolation of each CJK character, glyph or tetragraph from the others. One such method involves finding or isolating a line of possible or potential CJK characters in an image of a page of text that includes CJK characters. The line of CJK characters may be horizontal or vertical. Slight line straightening or correction methods may be applied prior to, during or after implementing the methods described herein.
One implementation includes selecting or calculating a window width for a text line of CJK characters or CJK text. The window is at least as tall as the characters in the isolated text line. The beginning of the window is matched to the beginning of the text line and gaps falling in the window are detected. One way to find the gap is to identify a location in the window that is a 4-connected path that is purely vertical where contiguous white pixels are located directly one above another. A distance (e.g., in pixels) from the beginning of the window to each pixel belonging to the gap is calculated. A histogram is built based on these distances. The window is moved to the end of the first found gap and the process is repeated until the window reaches the end of the text line and all gaps in the text line are found.
Next, a linear division graph (LDG) is constructed according to the detected gaps. A histogram of character widths for the given line is obtained. A maximum or desired point in the histogram is found. In a neighborhood of the maximum, an area in the histogram is selected so that the height of each column in the selected area is at least a predefined part of the maximal height. Every column outside of this selected area is considered as a “small” penalty of the LDG arc. This area of small penalties is typically the character width for a given line.
Histogram columns that are outside of the selected area are considered as “special” penalties of the LDG arcs. Maximal special penalties generally correspond to the columns with maximal distances from the beginning of the window to the gap. LDG arcs are each assigned a small penalty or a special penalty according to analysis of the histogram.
Next, paths of the LDG are found, and a sum of the penalties for each path is calculated. LDG paths with transitions from “small” to “special” penalties or vice versa are additionally penalized for each such transition. The path with the minimal penalty sum is chosen or selected as an optimal path. The optimal path may be considered as a scheme for dividing a text line into character cells.
In one aspect, the present disclosure is related to methods for detecting a junction in a received image of a line of text to update a junction list with descriptive data. The method includes creating a color histogram based on a number of color pixels in the received image of the line of text, and detecting, based at least in part on the on the received image of the line of text, a rung within the received image of the line of text. The method further includes identifying a horizontal position of the detected rung in the received image of the line of text, additionally identifying a gateway on the color histogram, where the identified gateway is associated with the detected rung, and updating the junction list with data including a description of the identified gateway. The method further includes summing the number of color pixels in a straight horizontal line of the received image of the line of text. The method further includes detecting a difference in thickness and position in the received image of the line of text. The method further includes dividing the received image of the line of text into three horizontal regions comprising a bottom stripe, a middle stripe, and a top stripe and identifying that the detected rung is positioned in the bottom stripe or the middle stripe. In some embodiments, the method includes identifying a plateau on the created color histogram, where the plateau corresponds to a low level on the created color histogram, and detecting a peak on each side of the plateau on the created color histogram. The method further includes calculating a pixel distance from a start of the received image of the line of text to the identified gateway.
In another aspect, the present disclosure is directed towards systems for detecting a junction in a received image of a line of text to update a junction list with descriptive data. The system includes a memory configured to store processor-executable instructions and a processor operatively coupled to the memory. The processor is configured to create a color histogram based on a number of color pixels in the received image of the line of text and detect, based at least in part on the received image of the line of text a rung. The processor is further configured to identify a horizontal position of the detected rung in the received image of the line of text, additionally identify a gateway on the color histogram, where the identified gateway is associated with the detected rung, and update the junction list with data including a description of the identified gateway. In one embodiment, the created color histogram is a quantity of color pixels in a straight horizontal line of the received image of the line of text and the detected rung is a portion of the received image of the line of text where two neighbor characters are joined. In another embodiment, the horizontal position corresponds to one of three horizontal regions of the received image of the line of text, where the three horizontal regions comprise a bottom stripe, a middle stripe, and a top stripe, and the horizontal position of the detected rung is in the bottom stripe or the middle stripe. In some implementations, the identified gateway is based at least in part on identification of a plateau on the created color histogram, where the plateau corresponds to a low level on the created color histogram. In some implementations, the processor is configured to detect a peak on each side of the plateau on the created color histogram. In some implementations, the description of the identified gateway includes a pixel distance from a start of the received image of the line of text to the identified gateway.
In another aspect, the present disclosure is related to a computer-readable storage medium having computer-readable instructions stored therein, the instructions being executable by a processor of a computing system. The instructions include instructions to create a color histogram based on a number of color pixels in a received image of a line of text and instructions to detect, based at least in part on the on the received image of the line of text, a rung in the received image of the line of text. The instructions further include instructions to identify a horizontal position of the detected rung in the received image of the line of text. The instructions further include instructions to identify a gateway on the created color histogram associated with the detected rung and instructions to update a junction list with data including a description of the identified gateway. In some implementations, the created color histogram is a quantity of color pixels in a straight horizontal line of the received image of the line of text. The instructions further include instructions to identify a plateau on the created color histogram, where the plateau corresponds to a low level on the created color histogram, and where the identified gateway is identified based at least in part on the plateau. The instructions further include instructions to detect a peak on each side of the plateau on the created color histogram.
Other details and features will be apparent from the detailed description.
The foregoing and other objects, aspects, features, and advantages of the disclosure will become more apparent and better understood by referring to the following description taken in conjunction with the accompanying drawings, in which:
In the following description, for purposes of explanation, numerous specific details are set forth in order to provide an understanding of the disclosure. It will be apparent, however, to one skilled in the art that the disclosure can be practiced without these specific details. In other instances, structures and devices are shown only in block diagram form in order to avoid obscuring the disclosure.
Reference in this specification to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the disclosure. Appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment, nor are separate or alternative embodiments mutually exclusive of other embodiments. Moreover, various features are described which may be exhibited by some embodiments and not by others. Similarly, various requirements are described which may be requirements for some embodiments but not for other embodiments.
Broadly, embodiments and techniques of the present disclosure disclose or relate to methods for defining of a layout of text lines containing Chinese, Japanese, Korean (CJK) and European characters. Reference may be made to a text “line,” but also could refer to a word, paragraph, section and page. Similarly, while reference may be made to CJK characters, other terms may be used to mean CJK characters including glyphs, ideographs, tetragraphs, symbols and the like, and vice versa—use of CJK characters may be used to mean glyphs, ideographs, tetragraphs, symbols and the like. The embodiments and techniques described herein apply to all types of offline and online (active) recognition of CJK characters.
Unless stated otherwise, glyphic languages include Chinese (traditional and simplified), Japanese and Korean writings as well as any other written language that is not represented by a relatively simple or small alphabet. Reference is made to CJK characters and is shorthand for all varieties of glyphs, characters, tetragraphs, tetragrams, symbols, ideograms and the like. The embodiments and techniques are generally for isolating individual characters or groups of characters (e.g., paragraphs, lines, words and individual glyphs) for further processing associated with one or more recognition or OCR techniques.
Before starting a recognition process, an initial image of a document, such as the one illustrated in
In
At block 506, arcs of the LDG are identified. An arc of the graph is a hypothesis that there is a character between any two given gaps. Each arc of the graph is characterized with a numerical parameter and/or multiple numerical parameters denoting a probability that the hypothesis is true. At block 508, image fragments corresponding to all LDG arcs, turn by turn, are passed to a set of classifiers for analysis. A classifier is a programming module configured to calculate a predefined feature or a set of features for a given image fragment. A feature is a mathematical function computed on a certain image fragment. A feature type and set of calculated features can be predefined. A feature may also take its ordinary meaning when referring, for example, to a feature of a character. A classification result generally is an estimation of probability of encountering a particular character within the given image fragment, the image fragment undergoing analysis by the classifier. At block 509, the result of each turn is converted into a set of hypotheses.
Still referring to the method 500, after the last turn of the processing cycle, block 506 and block 508, each arc of the LDG receives a penalty according to an estimation and hypotheses selected by the classifiers 508. Every column outside of the selected area is considered as a “small” penalty of the LDG arc with the height corresponding to this column.
At block 512, after penalties are calculated for all arcs in the LDG, the LDG paths are detected. At block 514, a sum of the penalties for each of the LDG paths is calculated. Finally, at block 516, the path with the minimal sum of penalties is selected as an optimal path. The optimal path is considered a scheme for dividing a text line into character cells or positions. This optimal path is a result of text line recognition and/or processing. In other words, dividing a text line into character cells could be considered a part of the recognition process.
The method described in
However, this is computationally expensive. It is difficult to use the method described in
First, the method requires calculation or determination of a large number of LDG arcs. It is not possible to obtain a probability value for an LDG arc until the classifier processes all of the previous LDG arcs, i.e., those that connect the beginning of a line with its corresponding gap (the gap where the arc starts or ends). As a result, it is impossible to obtain the layout before running the classifier set. This is computationally expensive.
Second, it is impossible to define the line content before running the classifier, i.e., it is usually impossible to estimate or detect in advance if the line is mixed or contains only CJK characters. As a result, it is necessary to use both “European” and “CJK” classifier sets for each LDG arc.
Third, it is highly probable to encounter cases of incorrect dividing of a text line into character cells (positions for lines mixed with both Roman and CJK characters).
The method of the present disclosure overcomes the listed drawbacks. It provides significant acceleration of the OCR system, demands fewer computational resources and yields significantly fewer misrecognized characters.
At block 602, a window width is selected such as by a function of a given text line height and as a function of a set of defined recognition languages. A window is an imaginary defined frame with height of the frame generally equal to the height of the line of text or line of characters. In some embodiments, the window is a rectangular frame. The width and location of the window on the line can be different on each step of line processing, and with each particular line. A window width is language-independent. For example, if the height of the line of Chinese glyphs is about 120 pixels then a window width is about 3 by 120 or about 360 pixels. The width of the window may depend on a line height or a font size, or may be chosen based on the same. A font size can be different on different lines or in different documents.
At block 604, the beginning of the window is matched to the beginning of the text line. At block 606, gaps falling in the window (i.e., located within the window's width) are detected. In one embodiment, the gap is identified by locating in the window, a 4-connected path that is purely vertical where contiguous white pixels are located directly one above another.
At block 608, a distance (e.g., in pixels) from the beginning of the window to each pixel belonging to the gap is calculated. Columns of a histogram corresponding to the found distances are incremented. In some embodiments, a histogram includes a histogram of character cell widths showing frequencies of encountering a gap at a certain distance from the beginning of the window. The more frequent the gap, the higher a value is in the corresponding column of the histogram. For example, a higher value can provide a stronger indication of encountering a gap. If the gap is N pixels from the beginning of the window, the higher the N's column of the histogram will be.
At block 610, the method 600 determines if the end of the line of text has been reached. If no, the method 600 goes to block 612. If yes, the method 600 goes to block 614. At block 612, the window is moved and the beginning of the window is matched to the end of the found gap from block 610. Blocks 606, 608 and 610 may be repeated until the window reaches the end of the text line and all the gaps in the text line are found.
At block 614, a linear division graph (LDG) is constructed according to the detected gaps. The LDG is a graph that can be constructed by a processor of a computer configured to recognize characters in an image of text line, for example an OCR system. The nodes of this graph are the gaps found within the text line. In some embodiments, the nodes of the LDG are between each character.
At block 616, a histogram of character widths for the given line is obtained. Further, a pronounced maximum (or maxima) in the histogram is detected. In a neighborhood of the maximum, a histogram area is selected so that the height of each column in the selected area is at least a predefined part of the maximal height. Every column outside of this selected area is considered as a “small” penalty of the LDG arc with the height corresponding to this column. This area of small penalties is considered hereafter as a confirmed estimation of a typical character width for a given line. Histogram columns that are outside of the selected area hereafter are considered as “special” penalties of the LDG arcs with the height corresponding to these columns. The value of a special penalty directly depends on the distance of the corresponding arc from the baseline of the window of CJK text. Maximal special penalties correspond to the columns with maximal distances from the beginning of the window to the gap.
At block 618, every LDG arc, depending on its length, is assigned a small or a special penalty according to the histogram of the character widths. At block 620, the paths of the LDG are found. An LDG path is a sequence of arcs connecting the beginning and the end of a line of text (e.g., a true end, or a stopping point) and contains one or more sets of LDG nodes where an LDG node generally correlates with a gap between characters. In some implementations, the LDG path is a variant of dividing a text line into characters at LDG nodes.
At block 622, a sum of the penalties for paths is calculated. LDG paths with transitions from small to special penalties or vice versa are additionally penalized for each such transition. Finally, at step 624, the path with the minimal penalty sum is chosen or selected as an optimal path. Hereafter the optimal path is considered as a scheme for dividing a text line into character cells.
In other embodiments, another criteria system can be used instead of penalties to find an optimal path on the basis of highest probabilities. As an additional benefit of using the described implementation, if the optimal path does not contain lines with a special penalty, the line layout with highest probability contains only CJK characters. If the optimal path contains arcs with special penalties, the line fragments corresponding to these arcs with high probability contain characters that are not CJK characters (e.g, Arabic numerals, punctuation marks, Latin characters). The results related to both line layout and preliminary interpretation of the characters contained there, are obtained without any traditional recognition of a character and without using any classifier.
There are many advantages associated with the above-described method. For example, there are fewer LDG arcs than in alternative methods such as the one shown in
Turning now to Korean languages, its specificities should be noticed.
In some implementations, a glued glyph is referred to as a junction. A junction is a location of a text line where two neighbor glyphs have been accidentally connected.
A rung is part of a text line whose position has been accidentally changed due to the connection of two neighbor glyphs, an important feature of most junctions in Korean text lines. Horizontal elements of two neighbor glyphs usually have some difference in a thickness or in positions. If such elements get glued in a junction together, the junction forms a rung.
In some embodiments, the junctions 930, 932 of the text line are thin horizontal or almost horizontal strokes. To detect the junctions 930, 932 a color histogram can be created. The color histogram is a histogram of the quantity of the colored pixels. In one embodiment, the color histogram is a BQ-histogram based on the quantity of black pixels in a text line. In the color histogram, every column corresponds to the quantity of the color pixels on a horizontal straight line connecting the highest (top) pixel and the lowest (bottom) pixel of the text line.
As illustrated in
In some embodiments, to detect junctions 1012, 1014 with the color histogram 1020, the color histogram 1020 can be analyzed for peaks 1025, 1026. The peaks 1025, 1026 are a part of the color histogram 1020 including a high level of color pixels. In more detail, the glyphs can contain vertical or sloping strokes, as well as various shapes, including circles and squares. Due to this reason, each glyph usually has correspondent peaks 1022, 1024 on the color histogram 1020. In particular, the plateaus 1022, 1024 corresponding to the appropriate junctions 1012, 1014 have a correspondent peak on each side, one to the right of the plateaus 1022, 1024 and one to the left of the plateaus 1022, 1024.
Still referring to
In some embodiments, to detect the junction electronic images of the Korean texts, the following logical expression can be performed:
Further,
At block 1102 a color histogram is created. In some embodiments, the color histogram is created by calculating the number of color pixels in a horizontal line of a portion of a line of text. The line of text can be a selected sequence of characters to be analyzed. The number of color pixels can be summed from the top of the horizontal line to the bottom of the horizontal line. In some embodiments, the color histogram is a BQ-histogram, created by calculating the number of black pixels in a horizontal line of a portion of a line text. Once the color histogram has been created, a determination is made if the method 1100 has reached the end of the line of text. If the end of line has been reached, the method 1100 ends. If the end of the line of text has not been reached, the method proceeds to block 1104.
At block 1104, the line of text is searched to determine if a rung or if multiple rungs exist. The rungs can be identified based on a difference in thickness and/or position of the horizontal or almost horizontal strokes on the image of the line of text. In some embodiments, the rungs represent an accidental joining of two neighboring characters in a line of text. An important feature of Korean text is that strokes of neighboring characters typically have a difference in thickness and/or position. This feature can be used to identify the location of rungs on the image of a line of text. Once the rung has been detected, the method 1100 proceeds to block 1106.
At block 1106, the horizontal position of the identified rungs is determined. The image of the line of text can be divided into three horizontal regions, a top strip, a middle stripe, and a bottom stripe. Due to specific peculiarity of the Korean glyphs, the glued or accidently joined characters do not exist in the top stripe. Therefore, if the rung is detected in the top stripe it can be ignored. The method 1100 can return to block 1102. However, the identified rung is positioned in the middle stripe or the bottom stripe, the method proceeds to block 1108.
At block 1108, the color histogram is analyzed for a plateau. In more detail, the portion of the color histogram corresponding to the identified rung in the line of text is analyzed for a plateau. The plateau is an area of the color histogram having a nonzero, but low level of color pixels on the color histogram. In some embodiments, plateaus corresponding to each identified rung from the bottom and middle stripes are detected on the color-histogram. If no plateau is found corresponding to the identified rung, the method 1100 returns to block 1102. If a plateau is identified corresponding to the identified rung, the method 1100 proceeds to block 1110.
At block 1110, the plateau detected in block 1108 is analyzed to identify gateways. In more detail, the area on the color histogram around the color pixel is analyzed for peaks. In some embodiments, is the plateau has a neighboring peak on each side of it on the color histogram, the plateau is considered a gateway. Because the characteristics of gateways can be common traits of color histograms for Korean text, in some embodiments, only gateways associated with rungs and plateaus are considered junctions. A junction is the accidental joining of two neighboring characters. If no gateway is detected, the method 1100 returns to block 1102. If a gateway is detected, the method 1100 proceeds to block 1112.
At block 1112, the coordinates of the gateway are measured. In some embodiments, the coordinates of the gateway can be measured by calculating a number of pixels from the start of the line of text to the gateway. In other embodiments, the gateway can be described as a range of distances. For example and without limitation, the gateways can be described as a 1st junction—79 . . . 86 pixels, and a 2nd junction—123 . . . 154 pixels (from the beginning of the line). The range of distances can include a range of pixels in the line of text.
Finally, at block 1114, the coordinates of the gateway are added to a junction list. The junction list can include all identified gateways (i.e., junctions) in the line of text. The junction list can include characteristics of the gateways.
In more detail, method 1200 begins at block 1202, where a window width for the text line is calculated. At block 1204, the beginning of the window is matched to the beginning of the text line or desired location. Then, at block 1206, the gaps located in the window are detected along the text line. At block 1208, a distance from the beginning of the window to each pixel belonging to the gap is calculated. Further, the columns of the histogram corresponding to the calculated distances is incremented. At block 1210, a determination is made if the method 1200 has reached the end of the line of text. If no, the method 1200 proceeds to block 1211. If the method 1200 has reached the end of the line of text, the method 1200 proceeds to block 1212. At block 1211, the window is moved to the end of the previously identified gap and then returns to block 1202. At block 1212, the line of text is analyzed to identify any junctions. In some embodiments, block 1212 is the same process as described in method 1100, blocks 1102-1114.
At block 1214, the list of junctions is merged with the list of gaps. It is important to note that all junctions may be considered gaps. Therefore junctions and gaps can be used together in further processing. In some embodiments, the junctions of a line of text are gaps that have been accidently joined together or glued. In one embodiment of the disclosure, the list of the gaps found during blocks 1206-1211 can be described as a range of the distances, for example as a range of a number of pixels from the start of a line of text to the detected gap. In this embodiment, the merging of the junction list and the gap list can be performed by adding the two lists together. In another embodiment, all of the junctions can be previously scaled by setting of some penalty value. This penalty value can be the same for all junctions. In other embodiments, the penalty value can be different for each junction, dependent upon other previously calculated parameters, for example, width of the plateau, or distance between peaks or any other parameter calculated to detect the junction in method 1100.
Once the lists have been merged, at block 1216, a linear division graph is constructed according to the detected gaps and the detected junctions. Next, at block 1218, a maximum in the histogram of character widths is detected. Further, areas of small and special penalties are detected, similar to the small and special penalties detected in block 616 of method 600. At block 1220, values are assigned to penalties for the LDG arcs according to the location in the histogram of the character widths. At block 1222, the paths of the LDG are detected. At block 1224, the sum of the penalties for the LDG paths is calculated. Finally, at block 1226, an optimal path of the LDG is selected. The optimal path can be the path with the minimum penalty sum. A stated above, the processes described in blocks 1202-1211 and 1216-1226 of method 1200 can be performed in the same manner as the processes described in blocks 602-624 of method 600.
Referring now to
The hardware 1300 is configured to receive a number of inputs and outputs for communicating information externally. For interface with a user or operator, the hardware 1300 can include one or more user input devices 1306 (e.g., a keyboard, a mouse, a scanner etc.) and a display 1308 (e.g., a Liquid Crystal Display (LCD) panel). For additional storage, the hardware 1300 can include one or more mass storage devices 1310, e.g., a floppy or other removable disk drive, a hard disk drive, a Direct Access Storage Device (DASD), an optical drive (e.g. a Compact Disk (CD) drive, a Digital Versatile Disk (DVD) drive, etc.) and/or a tape drive, among others. Furthermore, the hardware 1300 can include an interface with one or more networks 1312 (e.g., a local area network (LAN), a wide area network (WAN), a wireless network, and/or the Internet among others) to permit the communication of information with other computers coupled to the networks. In some embodiments, the hardware 1300 includes suitable analog and/or digital interfaces between the processor 1302 and each of the components 1304, 1306, 1308 and 1312 as is well known in the art.
In some embodiments, the hardware 1300 operates under the control of an operating system 1314, and executes various computer software applications, components, programs, objects, modules, etc. indicated collectively by reference numeral 1316 to perform the techniques described above, for example the methods described in
In general, the routines executed to implement the embodiments of the disclosure, may be implemented as part of an operating system or a specific application, component, program, object, module or sequence of instructions referred to as “computer programs.” The computer programs typically comprise one or more instructions set at various times in various memory and storage devices in a computer, and that, when read and executed by one or more processors in a computer, cause the computer to perform operations necessary to execute elements involving the various aspects of the disclosure. Moreover, while the disclosure has been described in the context of fully functioning computers and computer systems, those skilled in the art will appreciate that the various embodiments of the disclosure are capable of being distributed as a program product in a variety of forms, and that the disclosure applies equally regardless of the particular type of machine or computer-readable media used to actually effect the distribution. Examples of computer-readable media include but are not limited to recordable type media such as volatile and non-volatile memory devices, floppy and other removable disks, hard disk drives, optical disks (e.g., Compact Disk Read-Only Memory (CD ROMS), Digital Versatile Disks, (DVDs), etc.), among others.
Although the present disclosure has been described with reference to specific exemplary embodiments, it will be evident that the various modification and changes can be made to these embodiments without departing from the broader spirit of the disclosure. Accordingly, the specification and drawings are to be regarded in an illustrative sense rather than in a restrictive sense.
While certain exemplary embodiments have been described and shown in the accompanying drawings, it is to be understood that such embodiments are merely illustrative and not restrictive of the broad disclosure and that this disclosure is not limited to the specific constructions and arrangements shown and described, since various other modifications may occur to those ordinarily skilled in the art upon studying this disclosure. In an area of technology such as this, where growth is fast and further advancements are not easily foreseen, the disclosed embodiments may be readily modifiable in arrangement and detail as facilitated by enabling technological advancements without departing from the principals of the present disclosure.
This application is a continuation-in-part of U.S. patent application Ser. No. 13/457,968, titled “DEFINING A LAYOUT OF TEXT LINES OF CJK AND NON-CJK CHARACTERS” filed Apr. 27, 2012, now U.S. Pat. No. 8,559,718, the disclosure of which is herewith incorporated by reference in its entirety.
Number | Name | Date | Kind |
---|---|---|---|
4706212 | Toma | Nov 1987 | A |
4996665 | Nomura | Feb 1991 | A |
5068789 | Van Vliembergen | Nov 1991 | A |
5128865 | Sadler | Jul 1992 | A |
5146405 | Church | Sep 1992 | A |
5175684 | Chong | Dec 1992 | A |
5197121 | Miyoshi et al. | Mar 1993 | A |
5268839 | Kaji | Dec 1993 | A |
5301109 | Landauer et al. | Apr 1994 | A |
5317646 | Sang, Jr. et al. | May 1994 | A |
5339412 | Fueki | Aug 1994 | A |
5386556 | Hedin et al. | Jan 1995 | A |
5418717 | Su et al. | May 1995 | A |
5422743 | Farrell et al. | Jun 1995 | A |
5426583 | Uribe-Echebarria Diaz De Mendibil | Jun 1995 | A |
5428694 | Betts et al. | Jun 1995 | A |
5434962 | Kyojima et al. | Jul 1995 | A |
5459827 | Allouche et al. | Oct 1995 | A |
5475587 | Anick et al. | Dec 1995 | A |
5477451 | Brown et al. | Dec 1995 | A |
5490061 | Tolin et al. | Feb 1996 | A |
5497319 | Chong et al. | Mar 1996 | A |
5510981 | Berger et al. | Apr 1996 | A |
5550934 | Van Vliembergen et al. | Aug 1996 | A |
5555101 | Larson et al. | Sep 1996 | A |
5555362 | Yamashita et al. | Sep 1996 | A |
5559693 | Anick et al. | Sep 1996 | A |
5633996 | Hayashi et al. | May 1997 | A |
5677835 | Carbonell et al. | Oct 1997 | A |
5678051 | Aoyama | Oct 1997 | A |
5687383 | Nakayama et al. | Nov 1997 | A |
5696980 | Brew | Dec 1997 | A |
5701500 | Ikeo et al. | Dec 1997 | A |
5715468 | Budzinski | Feb 1998 | A |
5721938 | Stuckey | Feb 1998 | A |
5724593 | Hargrave, III et al. | Mar 1998 | A |
5727220 | Hohensee et al. | Mar 1998 | A |
5737617 | Bernth et al. | Apr 1998 | A |
5752051 | Cohen | May 1998 | A |
5768603 | Brown et al. | Jun 1998 | A |
5784489 | Van Vliembergen et al. | Jul 1998 | A |
5787410 | McMahon | Jul 1998 | A |
5794050 | Dahlgren et al. | Aug 1998 | A |
5794177 | Carus et al. | Aug 1998 | A |
5822454 | Rangarajan | Oct 1998 | A |
5826219 | Kutsumi | Oct 1998 | A |
5826220 | Takeda et al. | Oct 1998 | A |
5848184 | Taylor et al. | Dec 1998 | A |
5848186 | Wang et al. | Dec 1998 | A |
5848385 | Poznanski et al. | Dec 1998 | A |
5873056 | Liddy et al. | Feb 1999 | A |
5884247 | Christy | Mar 1999 | A |
5895446 | Takeda et al. | Apr 1999 | A |
5966686 | Heidorn et al. | Oct 1999 | A |
5999664 | Mahoney et al. | Dec 1999 | A |
6002798 | Palmer et al. | Dec 1999 | A |
6006221 | Liddy et al. | Dec 1999 | A |
6055528 | Evans | Apr 2000 | A |
6076051 | Messerly et al. | Jun 2000 | A |
6081774 | de Hita et al. | Jun 2000 | A |
6139201 | Carbonell et al. | Oct 2000 | A |
6182028 | Karaali et al. | Jan 2001 | B1 |
6223150 | Duan et al. | Apr 2001 | B1 |
6233544 | Alshawi | May 2001 | B1 |
6243669 | Horiguchi et al. | Jun 2001 | B1 |
6243670 | Bessho et al. | Jun 2001 | B1 |
6246977 | Messerly et al. | Jun 2001 | B1 |
6260008 | Sanfilippo | Jul 2001 | B1 |
6266642 | Franz | Jul 2001 | B1 |
6275789 | Moser et al. | Aug 2001 | B1 |
6278967 | Akers et al. | Aug 2001 | B1 |
6282507 | Horiguchi et al. | Aug 2001 | B1 |
6285978 | Bernth et al. | Sep 2001 | B1 |
6327386 | Mao et al. | Dec 2001 | B1 |
6330530 | Horiguchi et al. | Dec 2001 | B1 |
6345244 | Clark | Feb 2002 | B1 |
6356864 | Foltz et al. | Mar 2002 | B1 |
6356865 | Franz et al. | Mar 2002 | B1 |
6381598 | Williamowski et al. | Apr 2002 | B1 |
6400845 | Volino | Jun 2002 | B1 |
6456738 | Tsukasa | Sep 2002 | B1 |
6463404 | Appleby | Oct 2002 | B1 |
6470306 | Pringle et al. | Oct 2002 | B1 |
6562077 | Bobrow et al. | May 2003 | B2 |
6601026 | Appelt et al. | Jul 2003 | B2 |
6604101 | Chan et al. | Aug 2003 | B1 |
6658627 | Gallup et al. | Dec 2003 | B1 |
6721697 | Duan et al. | Apr 2004 | B1 |
6760695 | Kuno et al. | Jul 2004 | B1 |
6778949 | Duan et al. | Aug 2004 | B2 |
6871174 | Dolan et al. | Mar 2005 | B1 |
6871199 | Binnig et al. | Mar 2005 | B1 |
6901399 | Corston et al. | May 2005 | B1 |
6901402 | Corston-Oiiver et al. | May 2005 | B1 |
6928448 | Franz et al. | Aug 2005 | B1 |
6937974 | D'agostini | Aug 2005 | B1 |
6941521 | Lin et al. | Sep 2005 | B2 |
6947923 | Cha et al. | Sep 2005 | B2 |
6957383 | Smith | Oct 2005 | B1 |
6965857 | Decary | Nov 2005 | B1 |
6983240 | Ait-Mokhtar et al. | Jan 2006 | B2 |
7013264 | Dolan et al. | Mar 2006 | B2 |
7020601 | Hummel et al. | Mar 2006 | B1 |
7027974 | Busch et al. | Apr 2006 | B1 |
7028250 | Ukrainczyk et al. | Apr 2006 | B2 |
7050964 | Menzes et al. | May 2006 | B2 |
7069501 | Kunitake et al. | Jun 2006 | B2 |
7085708 | Manson | Aug 2006 | B2 |
7146358 | Gravano et al. | Dec 2006 | B1 |
7149347 | Wnek | Dec 2006 | B1 |
7167824 | Kallulli | Jan 2007 | B2 |
7171615 | Jensen et al. | Jan 2007 | B2 |
7191115 | Moore | Mar 2007 | B2 |
7200550 | Menezes et al. | Apr 2007 | B2 |
7263488 | Chu et al. | Aug 2007 | B2 |
7269594 | Corston-Oiiver et al. | Sep 2007 | B2 |
7310635 | Tucker | Dec 2007 | B2 |
7346215 | Shih et al. | Mar 2008 | B2 |
7346493 | Ringger et al. | Mar 2008 | B2 |
7356457 | Pinkham et al. | Apr 2008 | B2 |
7383496 | Fukuda | Jun 2008 | B2 |
7447624 | Fuhrmann | Nov 2008 | B2 |
7475015 | Epstein et al. | Jan 2009 | B2 |
7529408 | Vohariwatt et al. | May 2009 | B2 |
7596485 | Campbell et al. | Sep 2009 | B2 |
7653921 | Herley | Jan 2010 | B2 |
7672831 | Todhunter et al. | Mar 2010 | B2 |
7707025 | Whitelock | Apr 2010 | B2 |
7761787 | Singleton et al. | Jul 2010 | B2 |
8056001 | Chao | Nov 2011 | B2 |
8064096 | Waara | Nov 2011 | B2 |
8077973 | Dong | Dec 2011 | B2 |
8078450 | Anisimoviich et al. | Dec 2011 | B2 |
8145473 | Anisimoviich et al. | Mar 2012 | B2 |
8214199 | Anisimoviich et al. | Jul 2012 | B2 |
8229730 | Van Den Berg et al. | Jul 2012 | B2 |
8229944 | Latzina et al. | Jul 2012 | B2 |
8271453 | Pasca et al. | Sep 2012 | B1 |
8285728 | Rubin | Oct 2012 | B1 |
8301633 | Cheslow | Oct 2012 | B2 |
8402036 | Blair-Goldensohn et al. | Mar 2013 | B2 |
8533188 | Yan et al. | Sep 2013 | B2 |
8548951 | Solmer et al. | Oct 2013 | B2 |
8577907 | Singhal et al. | Nov 2013 | B1 |
20010014902 | Hu et al. | Aug 2001 | A1 |
20010029455 | Chin et al. | Oct 2001 | A1 |
20020029232 | Bobrow et al. | Mar 2002 | A1 |
20020040292 | Marcu | Apr 2002 | A1 |
20020064316 | Takaoka | May 2002 | A1 |
20030004702 | Higinbotham | Jan 2003 | A1 |
20030158723 | Masuichi et al. | Aug 2003 | A1 |
20030176999 | Calcagno et al. | Sep 2003 | A1 |
20030182102 | Corston-Oliver et al. | Sep 2003 | A1 |
20030204392 | Finnigan et al. | Oct 2003 | A1 |
20040098247 | Moore | May 2004 | A1 |
20040122656 | Abir | Jun 2004 | A1 |
20040153465 | Singleton et al. | Aug 2004 | A1 |
20040172235 | Pinkham et al. | Sep 2004 | A1 |
20040193401 | Ringger et al. | Sep 2004 | A1 |
20040254781 | Appleby | Dec 2004 | A1 |
20050010421 | Watanabe et al. | Jan 2005 | A1 |
20050015240 | Appleby | Jan 2005 | A1 |
20050021322 | Richardson et al. | Jan 2005 | A1 |
20050067482 | Wu et al. | Mar 2005 | A1 |
20050080613 | Colledge et al. | Apr 2005 | A1 |
20050086047 | Uchimoto et al. | Apr 2005 | A1 |
20050137853 | Appleby | Jun 2005 | A1 |
20050155017 | Berstis | Jul 2005 | A1 |
20050171757 | Appleby | Aug 2005 | A1 |
20050209844 | Wu et al. | Sep 2005 | A1 |
20050240392 | Munro, Jr. et al. | Oct 2005 | A1 |
20060004563 | Campbell et al. | Jan 2006 | A1 |
20060080079 | Yamabama | Apr 2006 | A1 |
20060095250 | Chen et al. | May 2006 | A1 |
20060136193 | Lux-Pogodalla et al. | Jun 2006 | A1 |
20060217964 | Kamatani et al. | Sep 2006 | A1 |
20060224378 | Chino et al. | Oct 2006 | A1 |
20060293876 | Kamatani et al. | Dec 2006 | A1 |
20070010990 | Woo | Jan 2007 | A1 |
20070016398 | Buchholz | Jan 2007 | A1 |
20070041041 | Engbrocks et al. | Feb 2007 | A1 |
20070083359 | Bender | Apr 2007 | A1 |
20070100601 | Kimura | May 2007 | A1 |
20070133067 | Garg | Jun 2007 | A1 |
20070168382 | Tillberg et al. | Jul 2007 | A1 |
20080002893 | Vincent et al. | Jan 2008 | A1 |
20080025608 | Meunier | Jan 2008 | A1 |
20080170786 | Tomizawa et al. | Jul 2008 | A1 |
20080195968 | Schacht | Aug 2008 | A1 |
20090028437 | Hirohata | Jan 2009 | A1 |
20090074296 | Filimonova et al. | Mar 2009 | A1 |
20090216794 | Saptharishi | Aug 2009 | A1 |
20110055188 | Gras | Mar 2011 | A1 |
20110301941 | De Vocht | Dec 2011 | A1 |
20120023104 | Johnson et al. | Jan 2012 | A1 |
20120030226 | Holt et al. | Feb 2012 | A1 |
20120131060 | Heidasch | May 2012 | A1 |
20120197885 | Patterson | Aug 2012 | A1 |
20120203777 | Laroco, Jr. et al. | Aug 2012 | A1 |
20120221553 | Wittmer et al. | Aug 2012 | A1 |
20120246153 | Pehle | Sep 2012 | A1 |
20120296897 | Hin-Jing et al. | Nov 2012 | A1 |
20130013291 | Bullock et al. | Jan 2013 | A1 |
20130054589 | Cheslow | Feb 2013 | A1 |
20130091113 | Gras | Apr 2013 | A1 |
20130138696 | Turdakov et al. | May 2013 | A1 |
20130185307 | El-Yaniv et al. | Jul 2013 | A1 |
20130254209 | Kang et al. | Sep 2013 | A1 |
20130282703 | Puterman-Sobe et al. | Oct 2013 | A1 |
20130311487 | Moore et al. | Nov 2013 | A1 |
20130318095 | Harold | Nov 2013 | A1 |
20140012842 | Yan et al. | Jan 2014 | A1 |
Number | Date | Country |
---|---|---|
2400400 | Dec 2001 | EP |
11224346 | Aug 1999 | JP |
2004355528 | Dec 2004 | JP |
2011160204 | Dec 2011 | WO |
Entry |
---|
Notice of Allowance issued in U.S. Appl. No. 13/457,968 mailed Jun. 11, 2013 (9 pages). |
Hutchins, “Machine Translation: Past, Present, Future”, 1986, New York: Halsted Press, Chapters 1, 3 and 9, pp. 1-36. |
Number | Date | Country | |
---|---|---|---|
20140126812 A1 | May 2014 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 13457968 | Apr 2012 | US |
Child | 14053208 | US |