This patent application relates to devices and methods for identifying in natural images or video frames, words of text.
Identification of text regions in papers that are optically scanned (e.g. by a flatbed scanner of a photocopier) is significantly easier (e.g. due to upright orientation, large size and slow speed) than detecting regions that may contain text in scenes of the real world that may be captured in images (also called “natural images”) or in video frames in real time by a handheld device (such as a smartphone) having a built-in digital camera. Specifically, optical character recognition (OCR) methods of the prior art originate in the field of document processing, wherein the document image contains a series of lines of text (e.g. 30 lines of text) of an optically scanned page in a document.
Document processing techniques, although successfully used on scanned documents created by optical scanners, generate too many false positives and/or negatives so as to be impractical when used on natural images containing text. Hence, detection of text regions in a real world image generated by a handheld camera is performed using different techniques. For additional information on techniques used in the prior art, to identify text regions in natural images, see the following articles that are incorporated by reference herein in their entirety as background:
Image processing techniques of the prior art described above appear to be developed primarily to identify regions in images that contain text which is written in the language English. Use of such techniques to identify in natural images, regions of text in other languages that use different scripts for letters of their alphabets can result in false positives and/or negatives so as to render the techniques impractical.
Depending on variations in lighting, color, tilt, focus, font etc, pixels that constitute a dot may or may not be included in a rectangular portion of the image that is being processed by OCR. The dot is just one of over ten (10) accent marks that may be used in the language Hindi. Moreover, presence of different fonts in addition to the large number of letters (including conjunct consonants) of the alphabet in Devanagari requires an OCR decoder to recognize a very large number of characters, resulting in a very complex system with poor recall accuracy.
Accordingly, there is a need to improve identification of words formed by Devanagari (also spelled Devanagiri) characters in a natural image or video frame, as described below.
In several aspects of described embodiments, an electronic device and method use a repository stored on one or more non-transitory computer readable storage media to perform optical character recognition (OCR) on text in an image received from a camera. The repository of several embodiments stores information on modifiers (e.g. accent marks) that is separated from information (e.g. feature vectors) normally used to recognize characters of a word in a predetermined natural language, such as Hindi. A modifier is not a character (such as a consonant) in the script of the natural language, and instead the modifier is a mark (e.g. a dot) which when present modifies a specific character, as per rules of the predetermined language (e.g. rules related to modification or accentuation of characters, by use of modifiers thereon).
In several embodiments, information on a word, in which a modifier occurs in normal usage of the word, in the predetermined natural language is stored in a repository by subdivision (or disassembly or disintegration) of the word (called “modifier-present” word) into (1) information on a primitive which includes a sequence of characters (also called “primitive word” or “prefix”) and (2) information on one or more modifier(s) that when present, combine with one or more character(s) in the sequence to form the word. In addition to storing information on modifier-present words, the repository of several embodiments further stores information on words wherein no modifier occurs in normal usage of the word (called “modifier-absent” words), as a sequence of characters with no associated modifier.
One or more processors coupled to the one or more non-transitory computer readable storage media are programmed to use the repository to detect in a camera-captured image at least one text region including a first sequence of characters Specifically, the one or more processors select a second sequence of characters (e.g. by use of a sequence of feature vectors corresponding to the second sequence of characters) from a predetermined set of sequences in the repository (as matching the first sequence of characters). Moreover, the one or more processors are programmed to analyze the image to determine whether at least one pixel satisfies a test associated with a modifier that modifies a specific character in the sequence, if the second sequence is associated with additional information (also called “modifier information”, “side information”, or “predetermined information”) based on one or more tests. When the test is satisfied, the one or more processors add a specific modifier to a specific character in a copy of the second sequence, followed by identifying the first sequence detected in the text region as the copy of the second sequence with the modifier.
In several embodiments, the electronic device and method initially identify a rectangle of text (also called “block”) in a portion of an image of real world captured by a camera of a mobile device, slice the block into sub-blocks, and identify at least one character in each sub-block. The device and method then select a specific sequence of characters, from a predetermined set of sequences (which set includes sequences of modifier-absent words and sequences of modifier-present words) by matching the specific sequence being selected to characters identified in the block. The device and method then check whether the specific sequence is associated with additional information, and if not the specific word is marked as recognized (as a modifier-absent word).
When a specific sequence that is identified from a block in the image happens to be a primitive word, the device and method automatically retrieve from the repository additional information which indicates that one or more modifiers associated with the primitive word (e.g. as indicated by a flag) need to be checked for presence in the image. Hence the device and method of some embodiments then check if any modifier(s) is/are present in the image (e.g. by checking intensities of pixels above the block) and if so the primitive word and the modifier(s) are together identified in combination with one another, as being recognized (as a modifier-present word).
Depending on the embodiment, the additional information in the repository may identify, for a specific sequence, a predetermined position relative to the rectangle (e.g. located above a specific character in the sequence) at which a group of pixels need to be present in the image, to be recognized as a predetermined modifier. Such information may additionally or alternatively identify other properties of the group of pixels to be checked, such as an expected size (e.g. at least ⅕th of the size of the rectangle) and/or an expected shape (such as an aspect ratio between 0.9 and 1.1). Hence, after identification of a sequence of characters, additional information in the repository is used to check the image for presence of a group of pixels (e.g. in the form of a modifier of a primitive word or prefix) and then it is a combination of the sequence and the modifier that is recognized as a word of text occurring in the image.
It is to be understood that several other aspects of the invention will become readily apparent to those skilled in the art from the description herein, wherein it is shown and described various aspects by way of illustration. The drawings and detailed description below are to be regarded as illustrative in nature and not as restrictive.
Several operations and acts of the type described herein are implemented by one or more processors included in a mobile device 401 (
Mobile device 401 may further include sensors, such as accelerometers, gyroscopes, GPS sensor or the like, which may be used to assist in determining various attributes, such as a pose (including position and orientation) of mobile device 401 relative to a real world scene captured by camera 405. Those of skill in the art will appreciate that the techniques described herein can be adapted to identify portions of an image having a shape other than a rectangle, and to identify characters therein. In the following description, a single processor (such as processor 404) is sometimes described for convenience, although it is to be understood that multiple processors may be used, depending on the embodiment.
Accordingly, in several embodiments of the type described herein, in an act 201 (
Hence, processor 404 may be programmed to perform word level processing in operation 230 to identify a sequence of characters during recognition of a word, thereafter jump to a lower level of abstraction by performing pixel level processing in operation 240 e.g. to confirm the occurrence of pixels in a specific pattern in the image or to re-do one or more pixel level operations in a selected portion of the image, and thereafter return to continue performing word level processing again in operation 230, to complete recognition of a word which includes the specific sequence of characters. In one example, after a specific sequence of characters is identified, processor 404 is programmed to check an image for pixels that may form a DOT maatra in the Devanagari script of a character in the specific sequence of characters, followed by identifying the word (as a combination of the specific sequence and DOT maatra).
Referring to
After image 107 (
A specific manner in which pixels of a region 264 (
In some embodiments, pixels are identified in a set of positions (which may be implemented in a list) that in turn identifies a region i which includes a local extrema of intensity (such as local maxima or local minima) in image 107. Such a region i may be detected in act 211 (
Regions may be detected in act 211 by use of a method of the type described in an article entitled “Robust Wide Baseline Stereo from Maximally Stable Extremal Regions” by J. Matas, O. Chum, M. Urban, and T. Pajdla, BMVC 2002, pages 384-393 that is incorporated by reference herein in its entirety. Alternatively other methods can be used to perform connected component analysis and detection of regions in act 211 e.g. methods of the type described by SHIN et al. “Application of Floyd-Warshall Labelling Technique: Identification of Connected Pixel Components In Binary Image”, published in Kangweon-Kyungki Math. Jour. 14 (2006), No. 1, pp. 47-55 that is incorporated by reference herein in its entirety, or as described PARK et al. “Fast Connected Component Labeling Algorithm Using A Divide and Conquer Technique”, believed to be published in Matrix (2000), Volume: 4, Issue: 1, Publisher: Elsevier Ltd, pages 4-7 that is also incorporated by reference herein in its entirety.
Hence, a specific manner in which regions of an image 107 are detected in act 211 by mobile device 401 in described embodiments can be different, depending on the embodiment. In several embodiments, each region of image 107 that is detected by use of an MSER method of the type described above is represented by act 211 in the form of a list of pixels, with two coordinates for each pixel, namely the x-coordinate and the y-coordinate in two dimensional space (of the image). After identification of regions by MSER, each region is initially included in a single rectangular block (such as region 264 in block 262) which may be automatically identified by mobile device 401 of some embodiments in act 211, e.g. as a minimum bounding rectangle (not shown) of region 264 (
After application of one or more rules to merge blocks as noted above, act 212 (
Referring to
Sub-blocks 266A-266C (
Processor 404 then checks if all sub-blocks 266A-266C are processed in act 223 and returns to act 222 when not. Acts 222 and 223 may be performed in a loop, to identify characters in block 266, corresponding to the sequence of sub-blocks 266A-266C sliced from block 266. When all sub-blocks 266A-266C of a block 266 have been processed as described above (to identify characters therein), control transfers via branch 224 (
In act 231, processor 404 uses characters identified by operation 220 as being recognized in sub-blocks 266A-266 of block 266 to select a second sequence of characters. In some embodiments, act 231 is performed on a first sub-block such as sub-block 266A (
Then, processor 404 may use a sequence of sub-blocks 266A-266C in the detected text region in image 107 to form multiple sequences of characters, by including one character from each group for each sub-block. For example, the first character in each group may be selected by processor 404 to form one sequence. In this example, processor 404 may use the first character in each group except the last group with the second character in the last group to form another sequence. Such sequence formation is done repeatedly by processor 404 of some embodiments, so that memory 501 holds multiple sequences of characters, with each sequence being a candidate for recognition in block 262 (also called “candidate sequence”).
Subsequently, processor 404 (also in act 231 in
After a second sequence 276 (
If repository 270 indicates that no data structure is present (and thus no further test needs to be done) for a second sequence, processor 404 stores (in act 234 of
A set of sequences used in act 231 (and retrieved from a repository 270) of some embodiments includes sequences of characters of normal words of a predetermined language that do not have modifiers and further includes sequences of characters (also called “primitive words”) that when combined with one or more groups of pixels (that constitute one or more modifiers) result in normal words in the predetermined language. In examples illustrated in
In some embodiments, the just-described two words and in Hindi are stored in repository 270 in a trellis 271T in a tree with the primitive word wherein the character which is common to all three words forms a root node, e.g. node 276A of the tree (also called prefix tree). More specifically, the primitive word is represented in the tree in trellis 271T by the three nodes 276A, 276B and 276C for each of the three unmodified characters , and in the primitive word. Furthermore, as indicated by a flag 282 in
The same data structure 285 may be additionally used to recognize another word after recognition of the two unmodified characters and (shown in trellis 271T at the respective nodes 276A and 277A) followed by checking the flag 283 in modifier information 280 (in embodiments that use flags 281). Similarly, flag 284 in modifier information 280 maybe checked after recognition of the two unmodified characters and (shown in trellis 271T at the respective nodes 276A and 276B). Accordingly, in the example of
Thus, as shown in
When the predetermined test (for one or more pixels indicative of a specific modifier) is found to be satisfied in act 241 (
Modifier information 280 (
In several embodiments, position 285P and type 285T in data structure 285 in modifier information 280 require act 241 (
As will be readily apparent in view of this detailed description, although the examples illustrated in
Also depending on the embodiment, instead of, or in addition to, the above-described modifiers, modifier information in a data structure 285 of the type described above may require act 241 to check the image for occurrence of pixels of a common binary value in conformance with other patterns, e.g. denoting any one of three different maatras, and at the end of a sequence of characters (after a specific sequence of characters associated therewith is recognized, as present in the image) as in the following words (in the language Hindi) , , obtained by combination of a modifier with the primitive word (or sequence of characters) .
Referring to
In certain embodiments, when the answer in act 241 is no, and the probability of recognition of the specific sequence in block 262 is found to be below another threshold value, such as 0.50, control transfers via branch 244R (
Accordingly, information in the second row and the third row of lookup table 290 (
Repository 270 that is used in act 231 to recognize sequences of characters (also called “primitive words”) in a block of an image in several embodiments is prepared ahead of time before recognition of words in images, by off-line computation (e.g. in a server computer 1015 or processor 404 performing a method illustrated in
In some embodiments, a server computer 1015 performs the off-line computation by using a populate module 300 of the type illustrated in
Next, in act 312, populate module 300 selects a word from the list. Then, in act 313, populate module 300 checks whether a modifier (or optionally a character, depending on the embodiment) in the selected word satisfies a predetermined test. For example, a selected word may be checked in act 313 by populate module 300 for presence of a predetermined number that represents the DOT maatra in the numeric representation. If the answer in act 313 is no, then control transfers to act 315 wherein the sequence of characters from the dictionary word is added to trellis 271T (
If the answer in act 313 is yes, then act 314 is performed to remove the character or the modifier e.g. DOT maatra , followed by preparation of modifier information 280 (
In an illustrative example, in the language Hindi, performance of act 314 (
Although in some embodiments, a dot 263 that is excluded from block 262 (
In some embodiments, processor 404 is programmed to perform operation 240 during on-line computation by a mobile device 401 as illustrated by acts 321-324 in
Hence, during processing of block 331 (
In an illustrative example, during act 323, the position of each pixel in portion 333 is multiplied by the binary value thereof to obtain a product, followed by summation of all products in each row to obtain a value of the x-coordinate in each row, which is averaged across all rows to obtain the value Xc. Similarly, summation of all products in each column results in a value of the y-coordinate in each column, which is averaged across all columns to obtain the value Yc. The coordinates (Xc, Yc) identify a point 334 (
In some embodiments, mobile device 401 checks in an act 324 whether there is a concentration of text pixels (or mass) around the center computed in act 323. Mobile device 401 of such embodiments may traverse a region around the center, with the size of the region depending on the total mass of portion 333 (e.g. total number of text pixels in portion 333). In some embodiments, mobile device 401 is programmed to start from the center computed in act 323, and traverse neighboring pixels in concentric rings (e.g. in a clockwise direction), until the number of pixels traversed reaches the number of text pixels in portion 333. During such traversal, mobile device 401 maintains a count of the number of text pixels encountered. When traversal is completed, mobile device 401 compares the count at the end of traversal to the total number of text pixels in region 333 (i.e. compares mass around the center to mass in portion 333). When the count is comparable to the total number of text pixels in region 333 (e.g. count is at least 50% of the total number), then a DOT maatra is determined to be present, and processor 404 goes from act 324 to act 235. If the result in act 324 is no, then processor 404 goes from act 324 to act 234, as the DOT maatra is determined to be not present.
As another example, presence of modifier information for the character sequence on being identified during online decoding of a block of a camera-captured image by mobile device 401 triggers performance of alternatives to acts 323 and 324 in the mobile device 401 to check for a group of pixels present at a specific relative location above the first character “” and this check may test whether the group of pixels form a dot of a specific size (e.g. relative to a character) and/or specific shape (e.g. circle or square) to be recognized as the DOT maatra in Devanagari.
In another example, alternatives to acts 323 and 324 in the mobile device 401 may use modifier information for a character sequence “Noel” on being identified during such online decoding of an image to check therein for two groups of pixels present at specific locations just above the third character “e”, and this check may test that the two groups of pixels are of specific size, specific shape and separated by specific distance between one another, and another specific distance from the character “e”, to be recognized as the diaeresis mark in Latin script.
Depending on the embodiment, a type of test in data structure 285 in modifier information 280 need not require checking strictly for presence of two groups of pixels because the check may be more relaxed based on detection of the character sequence “Noel”, e.g. allowing the presence of a single group of pixels to be sufficient for mobile device 401 to recognize a rectangular portion of the image as being the word Noël. Accordingly, the specific predetermined information which is used in acts 323 and 324 to detect the presence of a modifier can be different from a specific description of the modifier itself.
Note that depending on the size of block 265 (
In some embodiments, mobile device 401 is programmed to determine presence of a Chandrabindu maatra during pixel level processing in operation 240, as illustrated in
Thereafter, in act 352 (
The re-sized region 342 is then subject to correlation in act 354, with each pre-stored template (e.g. in a database). The result of correlation is checked in act 355. When act 355 finds that there is sufficient correlation (e.g. greater than or equal to 80% correlation), then an indication is stored (e.g. as per act 356 in
Mobile device 401 of several embodiments is configured to find the most likely (valid) word from a repository 270 (
In some embodiments, trellis 271T is made and used as described in U.S. Provisional Application No. 61/673,606 entitled “Trellis based word decoder with reverse pass” and in U.S. application Ser. No. 13/829,960, entitled “Trellis based word decoder with reverse pass”, both incorporated by reference above.
A server computer 1015 may be programmed to read each dictionary word, to create a prefix-tree based trellis (in an offline computation) by processing each word from left to right (see
Although marks of the type described above are located above a sequence of characters, other marks that are located on other sides of the sequence of characters can be processed in a similar manner, depending on the embodiment. For example, in certain embodiments that perform a method of the type illustrated in
In some embodiments, a mobile device performs operations 210, 220, 230 and 240 in a manner similar to that described above in reference to
The result of modifier removal in act 223B is a sequence that matches a primitive in act 231. The result of matching in act 231 is used by an act 232 as described above in reference to
Specifically, when the result of act 241A is yes, e.g. to indicate that the character stored in act 223B is the maatra (which is one of three predetermined maatras and recognizable in act 241A), and if the specific sequence of characters selected in act 231 is then the last character in this sequence is modified in act 235, by adding thereto the maatra stored in act 223B to obtain the modifier-present word (which is therefore stored in act 236 as being recognized). If the result of act 241A is no, then control may transfer to act 234 (when appropriate, e.g. as per another test), wherein the sequence without the modifier is stored in memory 501.
In an above-described example, a primitive word (or sequence of characters) is itself not a normal word in the language Hindi and it is not itself recognizable as a valid word in the dictionary, although this sequence of characters has been deliberately stored in trellis 271T in repository 270, for use in recognition (by use of modifier information 280) of one of three variants thereof obtained by combination with a respective one of the maatras, and (each of which is itself a character).
In the above-described example of primitive word (or specific sequence of characters) , yet another word which is a legal word in the language Hindi is formed by combination of the primitive word with another maatra that is located only at the top of the word, specifically the maatra . Accordingly, when the word is first encountered by a server computer 1015 during off-line computation and needs to be stored in repository 270, its primitive word may be already found to be present in trellis 271T e.g. based on words with any of three different maatras, and being encountered previously, and in this event an identifier of this word is associated (along with any other identifiers of the other words) with the same primitive and the corresponding maatra information for the maatra is also stored in modifier information 280.
Similarly, when trellis 271T already holds an existing word that does not have a DOT maatra and when a new word formed by combination of the DOT maatra with a primitive word that is same as the normal word is encountered, then both the existing word and the new word are identified by the server computer 1015 using a single entry in trellis 271T, although maatra information is additionally stored in repository 270 for use in recognizing the combination (i.e. the new word).
As will be readily apparent, a modifier may be located not only above and/or to the right of a primitive word, but alternatively or additional could be located below and/or to the left of the primitive word, depending on the corresponding legal word as it occurs in the language (e.g. Hindi). Regardless of where a modifier is located relative to a primitive word, their combination can be easily decoded, as described above, by use of modifier information 280.
Alternatively or additionally, modifier information 280 is used in several embodiments to inspect a binarized version of the original image, for a group of pixels of a specific shape, such as a contour that is convex (e.g. circle, square, triangle), which confirms the presence of a point or period or a DOT maatra or any other shape that may be expected (as per the modifier information). For example, when a modifier is a vowel maatra, such as maatra (also called character), as described above, act 241 may be implemented by simply checking the binarized version of the original image for the presence of a vertical line immediately beyond the right side of the rectangular portion being decoded, i.e. at the end of the word. In several such embodiments, the above-described checking may be done directly on a connected component or a maximally stable extremal region (MSER).
Several embodiments of a mobile device 401 perform the method illustrated in
In checking done by act 231, one or more of the following checks may be performed: (a) check based on word decoder confidence value; (b) check based on character decoder likelihoods; (c) whether the identified word has been flagged with modifier information. Moreover, in act 241, mobile device 401 may be programmed to perform any one or more of the following acts: (1) re-compute an MSER in this portion of the image, with changed input parameters Δ and Max Variation (as described above); (2) look for specific objects (e.g. to confirm presence of a dot, or other objects); (3) look for specific geometric properties in the image (e.g. to confirm a specific character representing a maatra); (4) binarized using a different threshold; (5) check for skew and correct; (6) check for a missing character, or a maatra.
One or more processors of mobile device 401 may be programmed in several described embodiments, to implement a feedback loop as illustrated in
In act 519, depending on the embodiment, an MSER of the image portion may be re-computed, with changed parameters of the type illustrated in rows 2 and 3 in lookup table 290 (
In some embodiments, each word in a list of words received by mobile device 401 includes a sequence of characters, which is identified by a unique identifier. For example the word is identified by a unique identifier in mobile device 401 by representation as a sequence of numbers, with each number representing a character in the sequence (, , , ). Accordingly, in several embodiments, repository 270 includes several normal words 275 as well as primitive words 274 where each word is represented as a sequence of characters (as shown above). Furthermore, in some embodiments, a character decoder in mobile device 401 outputs N near possibilities for each character (e.g. 3 most-likely candidate characters, in one illustrative example) with their corresponding likelihood (or probability). Remaining probability in such embodiments may be equally divided among all the other characters in the dictionary.
Mobile device 401 (
Also, mobile device 401 may additionally include a graphics engine 1004 and an image processor 1005 that are used in the normal manner. Mobile device 401 may optionally include OCR module 614 (e.g. implemented by processor 404 executing the software 510 in memory 501) to identify characters of text in blocks received as input by OCR module 614 (when software therein is executed by processor 404).
In addition to memory 501, mobile device 401 may include one or more other types of memory such as flash memory (or SD card) or other memory 1008 (
A mobile device 401 of the type described above may include other position determination methods such as object recognition using “computer vision” techniques. The mobile device 401 may also include a user interface for selecting a portion of an image to be subject to OCR, responsive to user input on mobile device 401 e.g. by use of a touch screen therein. Mobile device 401 may include transceiver 1010, which may be an IR or RF transmitter or a wireless a transmitter enabled to transmit one or more signals over one or more types of wireless communication networks such as the Internet, WiFi, cellular wireless network or other network, e.g. for use in receiving a word dictionary from a server computer 1015. The mobile device 401 may further include, in a user interface, a microphone and a speaker (not labeled). Of course, mobile device 401 may include other elements unrelated to the present disclosure, such as a read-only-memory 1007 which may be used to store firmware for use by processor 404.
Also, depending on the embodiment, a mobile device 401 may detect words of text in images, in implementations that operate the OCR module 614 to identify, e.g. characters of Devanagiri alphabet in an image. Specifically, mobile device 401 may include in memory 501 software 510 in the form of an MSER module 610 (
As noted above, in some embodiments of mobile device 401, functionality in the above-described OCR module 614 is implemented by processor 404 executing the software 510 in memory 501 of mobile device 401, although in other embodiments such functionality is implemented in any combination of hardware circuitry and/or firmware and/or software in mobile device 401. Hence, depending on the embodiment, various functions of the type described herein may be implemented in software (executed by one or more processors or processor cores) or in dedicated hardware circuitry or in firmware, or in any combination thereof.
Accordingly, depending on the embodiment, any one or more of OCR module 614 can, but need not necessarily include, one or more microprocessors, embedded processors, controllers, application specific integrated circuits (ASICs), digital signal processors (DSPs), and the like. The term processor is intended to describe the functions implemented by the system rather than specific hardware. Moreover, as used herein the term “memory” refers to any type of non-transitory computer storage medium, including long term, short term, or other memory associated with the mobile platform, and is not to be limited to any particular type of memory or number of memories, or upon which memory is stored.
Hence, methodologies described herein may be implemented by various means depending upon the application. For example, these methodologies may be implemented in firmware 1013 (
At least one non-transitory computer readable storage media tangibly embodying software instructions (also called “computer instructions”) may be used in implementing the methodologies described herein. For example, software 510 (
Non-transitory computer readable media includes physical computer storage media. A storage medium may be any available non-transitory medium that can be accessed by a computer. By way of example, and not limitation, such non-transitory computer readable media can comprise RAM, ROM, Flash Memory, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other non-transitory medium that can be used to store program code in the form of instructions or data structures and that can be accessed by a computer; disk and disc, as used herein, includes compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk and blu-ray disc where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above should also be included within the scope of computer-readable media.
Although the present invention is illustrated in connection with specific embodiments for instructional purposes, the present invention is not limited thereto. Hence, although mobile device 401 shown in
Depending on a specific symbol recognized in a handheld camera captured image, a user can receive different types of feedback depending on the embodiment. Additionally haptic feedback (e.g. by vibration of mobile device 401) is provided by triggering haptic feedback circuitry 1018 (
Some embodiments of the type described herein use at least one non-transitory computer readable storage media such as memory 501 comprising a plurality of instructions (such as software 510) to be executed by processor 404. Such a plurality of instructions include: first instructions to receive an image (such as image 107) of a scene of real world captured by a camera 405 of mobile device 401; second instructions to identify in the image (or in a portion thereof), a plurality of characters of a predetermined script (e.g. Devanagari) in which a predetermined language (e.g. Hindi) is expressed; third instructions to select a specific sequence of characters (e.g. specific sequence 276) from a predetermined set of sequences 271, based on the specific sequence of characters matching the plurality of characters that have been identified; fourth instructions to check the image, whether at least one pixel satisfies a predetermined test associated with the specific sequence of characters; fifth instructions to add a modifier to a specific character in the specific sequence of characters, when the predetermined test is satisfied; sixth instructions to store in a memory a result of executing the instructions to add; and seventh instructions to determine a predetermined test based on the specific sequence of characters.
The above-described second instructions, when executed by one or more processors may constitute means for identifying in the image, a plurality of characters, in some embodiments. The above-described third instructions, when executed by one or more processors may constitute means for selecting a specific sequence of characters in some embodiments. The above-described fourth instructions, when executed by one or more processors may constitute means for checking whether at least one pixel satisfies a predetermined test, in some embodiments. The just described fourth instructions may include instructions to determine a center of mass of a group of pixels including the at least one pixel (which when executed by one or more processors may constitute means for determining) in some embodiments. Moreover, the above-described fifth instructions, when executed by one or more processors may constitute means for adding a modifier, in some embodiments. Certain embodiments of the storage media additionally include a group of instructions to further check for presence of a line of pixels of a common binary value in a region comprising the plurality of characters (which when executed by one or more processors may constitute means for further checking).
Various adaptations and modifications may be made without departing from the scope of the described embodiments. Numerous modifications and adaptations of the embodiments described herein are encompassed by the attached claims.
This application claims priority under 35 USC §119 (e) from U.S. Provisional Application No. 61/677,291 filed on Jul. 30, 2012 and entitled “Method Of Handling Complex Variants Of Words Through Prefix-Tree Based Decoding For Devanagiri OCR”, which is assigned to the assignee hereof and which is incorporated herein by reference in its entirety. This application claims priority under 35 USC §119 (e) from U.S. Provisional Application No. 61/673,606 filed on Jul. 19, 2012 and entitled “Trellis based word decoder with reverse pass”, which is assigned to the assignee hereof and which is incorporated herein by reference in its entirety. This application is related to U.S. application Ser. No. 13/829,960, filed concurrently herewith, entitled “Trellis based word decoder with reverse pass” which is assigned to the assignee hereof and which is incorporated herein by reference in its entirety.
Number | Name | Date | Kind |
---|---|---|---|
3710321 | Rubenstein | Jan 1973 | A |
4654875 | Srihari et al. | Mar 1987 | A |
5321768 | Fenrich et al. | Jun 1994 | A |
5459739 | Handley et al. | Oct 1995 | A |
5465304 | Cullen et al. | Nov 1995 | A |
5519786 | Courtney et al. | May 1996 | A |
5563403 | Bessho et al. | Oct 1996 | A |
5633954 | Gupta et al. | May 1997 | A |
5751850 | Rindtorff | May 1998 | A |
5764799 | Hong et al. | Jun 1998 | A |
5768451 | Hisamitsu et al. | Jun 1998 | A |
5805747 | Bradford | Sep 1998 | A |
5835633 | Fujisaki et al. | Nov 1998 | A |
5844991 | Hochberg et al. | Dec 1998 | A |
5978443 | Patel | Nov 1999 | A |
6023536 | Visser | Feb 2000 | A |
6092045 | Stubley et al. | Jul 2000 | A |
6266439 | Pollard et al. | Jul 2001 | B1 |
6393443 | Rubin et al. | May 2002 | B1 |
6473517 | Tyan et al. | Oct 2002 | B1 |
6674919 | Ma et al. | Jan 2004 | B1 |
6678415 | Popat et al. | Jan 2004 | B1 |
6687421 | Navon | Feb 2004 | B1 |
6738512 | Chen et al. | May 2004 | B1 |
6954795 | Takao et al. | Oct 2005 | B2 |
7031530 | Driggs et al. | Apr 2006 | B2 |
7110621 | Greene et al. | Sep 2006 | B1 |
7142727 | Notovitz et al. | Nov 2006 | B2 |
7263223 | Irwin | Aug 2007 | B2 |
7333676 | Myers et al. | Feb 2008 | B2 |
7403661 | Curry et al. | Jul 2008 | B2 |
7450268 | Martinez et al. | Nov 2008 | B2 |
7724957 | Abdulkader | May 2010 | B2 |
7738706 | Aradhye et al. | Jun 2010 | B2 |
7783117 | Liu et al. | Aug 2010 | B2 |
7817855 | Yuille et al. | Oct 2010 | B2 |
7889948 | Steedly et al. | Feb 2011 | B2 |
7961948 | Katsuyama | Jun 2011 | B2 |
7984076 | Kobayashi et al. | Jul 2011 | B2 |
8005294 | Kundu et al. | Aug 2011 | B2 |
8009928 | Manmatha et al. | Aug 2011 | B1 |
8189961 | Nijemcevic et al. | May 2012 | B2 |
8194983 | Al-Omari et al. | Jun 2012 | B2 |
8285082 | Heck | Oct 2012 | B2 |
8306325 | Chang | Nov 2012 | B2 |
8417059 | Yamada | Apr 2013 | B2 |
8542926 | Panjwani et al. | Sep 2013 | B2 |
8644646 | Heck | Feb 2014 | B2 |
20020037104 | Myers et al. | Mar 2002 | A1 |
20030026482 | Dance | Feb 2003 | A1 |
20030099395 | Wang et al. | May 2003 | A1 |
20030215137 | Wnek | Nov 2003 | A1 |
20040179734 | Okubo | Sep 2004 | A1 |
20040240737 | Lim et al. | Dec 2004 | A1 |
20050041121 | Steinberg et al. | Feb 2005 | A1 |
20050123199 | Mayzlin et al. | Jun 2005 | A1 |
20050238252 | Prakash et al. | Oct 2005 | A1 |
20060039605 | Koga | Feb 2006 | A1 |
20060215231 | Borrey et al. | Sep 2006 | A1 |
20060291692 | Nakao et al. | Dec 2006 | A1 |
20070116360 | Jung et al. | May 2007 | A1 |
20070217676 | Grauman et al. | Sep 2007 | A1 |
20080008386 | Anisimovich et al. | Jan 2008 | A1 |
20080063273 | Shimodaira | Mar 2008 | A1 |
20080112614 | Fluck et al. | May 2008 | A1 |
20090060335 | Rodriguez et al. | Mar 2009 | A1 |
20090202152 | Takebe et al. | Aug 2009 | A1 |
20090232358 | Cross | Sep 2009 | A1 |
20090252437 | Li et al. | Oct 2009 | A1 |
20090316991 | Geva et al. | Dec 2009 | A1 |
20090317003 | Heilper et al. | Dec 2009 | A1 |
20100049711 | Singh et al. | Feb 2010 | A1 |
20100067826 | Honsinger et al. | Mar 2010 | A1 |
20100080462 | Miljanic et al. | Apr 2010 | A1 |
20100128131 | Tenchio et al. | May 2010 | A1 |
20100141788 | Hwang et al. | Jun 2010 | A1 |
20100144291 | Stylianou et al. | Jun 2010 | A1 |
20100172575 | Lukac et al. | Jul 2010 | A1 |
20100195933 | Nafarieh | Aug 2010 | A1 |
20100232697 | Mishima et al. | Sep 2010 | A1 |
20100239123 | Funayama et al. | Sep 2010 | A1 |
20100245870 | Shibata | Sep 2010 | A1 |
20100272361 | Khorsheed et al. | Oct 2010 | A1 |
20100296729 | Mossakowski | Nov 2010 | A1 |
20110052094 | Gao et al. | Mar 2011 | A1 |
20110081083 | Lee et al. | Apr 2011 | A1 |
20110188756 | Lee et al. | Aug 2011 | A1 |
20110215147 | Goncalves et al. | Sep 2011 | A1 |
20110222768 | Galic et al. | Sep 2011 | A1 |
20110249897 | Chaki et al. | Oct 2011 | A1 |
20110274354 | Nijemcevic | Nov 2011 | A1 |
20110280484 | Ma et al. | Nov 2011 | A1 |
20110285873 | Showering et al. | Nov 2011 | A1 |
20120051642 | Berrani et al. | Mar 2012 | A1 |
20120066213 | Ohguro | Mar 2012 | A1 |
20120092329 | Koo et al. | Apr 2012 | A1 |
20120114245 | Lakshmanan et al. | May 2012 | A1 |
20120155754 | Chen et al. | Jun 2012 | A1 |
20130001295 | Goncalves | Jan 2013 | A1 |
20130058575 | Koo et al. | Mar 2013 | A1 |
20130129216 | Tsai et al. | May 2013 | A1 |
20130194448 | Baheti et al. | Aug 2013 | A1 |
20130195315 | Baheti et al. | Aug 2013 | A1 |
20130195360 | Krishna Kumar et al. | Aug 2013 | A1 |
20130195376 | Baheti et al. | Aug 2013 | A1 |
20130308860 | Mainali et al. | Nov 2013 | A1 |
20140003709 | Ranganathan et al. | Jan 2014 | A1 |
20140022406 | Baheti et al. | Jan 2014 | A1 |
20140023270 | Baheti et al. | Jan 2014 | A1 |
20140023271 | Baheti et al. | Jan 2014 | A1 |
20140023273 | Baheti et al. | Jan 2014 | A1 |
20140023275 | Krishna Kumar et al. | Jan 2014 | A1 |
20140023278 | Krishna Kumar et al. | Jan 2014 | A1 |
20140161365 | Acharya | Jun 2014 | A1 |
20140168478 | Baheti et al. | Jun 2014 | A1 |
Number | Date | Country |
---|---|---|
1146478 | Oct 2001 | EP |
1840798 | Oct 2007 | EP |
2192527 | Jun 2010 | EP |
2453366 | Apr 2009 | GB |
2468589 | Sep 2010 | GB |
2004077358 | Sep 2004 | WO |
Entry |
---|
Setlur, et al. “Creation of data resources and design of an evaluation test bed for Devanagari script recognition”, Research Issues in Data Engineering: Multi-lingual Information Management, RIDE-MLIM 2003. Proceedings. 13th International Workshop, 2003, pp. 55-61. |
Li, et al. “Automatic Text Detection and Tracking in a Digital Video”, IEEE Transactions on Image Processing, Jan. 2000, pp. 147-156, vol. 9, No. 1. |
Chen, et al. “Detecting and reading text in natural scenes,” IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR'04), 2004, pp. 1-8. |
Lee, et al. “A new methodology for gray-scale character segmentation and recognition,” IEEE Transactions on Pattern Analysis and Machine Intelligence, Oct. 1996, pp. 1045-1050, vol. 18, No. 10. |
Epshtein, et al. “Detecting text in natural scenes with stroke width transform,” Computer Vision and Pattern Recognition (CVPR) 2010, pp. 2963-2970, (as downloaded from “http://research.microsoft.com/pubs/149305/1509.pdf”). |
Jain, et al. “Automatic text location in images and video frames”, Pattern Recognition, 1998, pp. 2055-2076, vol. 31, No. 12. |
Matas, et al. “Robust Wide Baseline Stereo from Maximally Stable Extremal Regions”, Proc. Of British Machine Vision Conference, 2002, pp. 384-393. |
Shin et al. “Application of Floyd-Warshall Labelling Technique: Identification of Connected Pixel Components in Binary Image”, published in Kangweon-Kyungki Math. Jour. 14 (2006), No. 1, pp. 47-55. |
Park et al. “Fast Connected Component Labeling Algorithm Using A Divide and Conquer Technique”, believed to be published in Matrix (2000), vol. 4, Issue: 1, Publisher: Elsevier Ltd, pp. 4-7. |
“4.1 Points and patches” In: Szeliski Richard: “Computer Vision—Algorithms and Applications”, 2011, Springer-Verlag, London, XP002696110, p. 195, ISBN: 978-1-84882-934-3. |
Agrawal, et al., “Generalization of Hindi OCR Using Adaptive Segmentation and Font Files,” V. Govindaraju, S. Setlur (eds.), Guide to OCR for Indic Scripts, Advances in Pattern Recognition, DOI 10.1007/978-1-84800-330-9—10, Springer-Verlag London Limited 2009, pp. 181-207. |
Agrawal M., et al., “2 Base Devanagari OCR System” In: Govindaraju V, Srirangataj S (Eds.): “Guide to OCR for Indic Scripts—Document Recognition and Retrieval”, 2009, Springer Science+Business Media, London, XP002696109, pp. 184-193, ISBN: 978-1-84888-329-3. |
Chaudhuri et al., “Skew Angle Detection of Digitized Indian Script Documents”, IEEE Transactions on Pattern Analysis and Machine Intelligence, Feb. 1997, pp. 182-186, vol. 19, No. 2. |
Chen H., et al., “Robust Text Detection In Natural Images With Edge-Enhanced Maximally Stable Extremal Regions,” believed to be published in IEEE International Conference on Image Processing (ICIP), Sep. 2011, pp. 1-4. |
Chowdhury A.R., et al., “Text Detection of Two Major Indian Scripts in Natural Scene Images”, Sep. 22, 2011 (Sep. 2, 2011), Camera-Based Document Analysis and Recognition, Springer Berlin Heidelberg, pp. 42-57, XP019175802, ISBN: 978-3-642-29363-4. |
Dlagnekov L., et al., “Detecting and Reading Text In Natural Scenes,” Oct. 2004, pp. 1-22. |
Elgammal A.M., et al., “Techniques for Language Identification for Hybrid Arabic-English Document Images,” believed to be published in 2001 in Proceedings of IEEE 6th International Conference on Document Analysis and Recognition, pp. 1-5. |
Ghoshal R., et al., “Headline Based Text Extraction from Outdoor Images”, 4th International Conference on Pattern Recognition and Machine Intelligence, Springer LNCS, vol. 6744, Jun. 27, 2011 , pp. 446-451, XP055060285. |
Holmstrom L., et al., “Neural and Statistical Classifiers—Taxonomy and Two Case Studies,” IEEE Transactions on Neural Networks, Jan. 1997, pp. 5-17, vol. 8 (1). |
Jain A.K., et al., “Automatic Text Location in Images and Video Frames,” believed to be published In Proceedings of Fourteenth International Conference on Pattern Recognition, vol. 2, Aug. 1998, pp. 1497-1499. |
Jayadevan, et al., “Offline Recognition of Devanagari Script: A Survey”, IEEE Transactions on Systems, Man, and Cybernetics—Part C: Applications and Reviews, 2010, pp. 1-15. |
Kapoor et al., “Skew angle detection of a cursive handwritten Devanagari script character image”, Indian Institute of Science, May-Aug. 2002, pp. 161-175. |
Machine Learning, retrieved from http://en.wikipedia.org/wiki/Machine—learning, May 7, 2012, pp. 1-8. |
Mikulik, et al., “Construction of Precise Local Affine Frames,” Center for Machine Perception, Czech Technical University in Prague, Czech Republic, pp. 1-5, Abstract and second paragraph of Section 1; Algorithms 1 & 2 of Section 2 and Section 4, International Conference on Pattern Recognition, 2010, pp. 1-5. |
Moving Average, retrieved from http://en.wikipedia.org/wiki/Moving—average, Jan. 23, 2013, pp. 1-5. |
Nister D., et al., “Linear Time Maximally Stable Extremal Regions,” ECCV, 2008, Part II, LNCS 5303, pp. 183-196, published by Springer-Verlag Berlin Heidelberg. |
Pal, et al., “Indian script character recognition: a survey”, Pattern Recognition Society, Published by Elsevier Ltd, 2004, pp. 1887-1899. |
Papandreou A. et al., “A Novel Skew Detection Technique Based on Vertical Projections”, International Conference on Document Analysis and Recognition, Sep. 18, 2011, pp. 384-388, XP055062043, DOI: 10.1109/ICDAR.2011.85, ISBN: 978-1-45-771350-7. |
Pardo M., et al., “Learning From Data: A Tutorial With Emphasis on Modern Pattern Recognition Methods,” IEEE Sensors Journal, Jun. 2002, pp. 203-217, vol. 2 (3). |
Renold M., “Detecting and Reading Text in Natural Scenes,” Master's Thesis, May 2008, pp. 1-59. |
Vedaldi A., “An Implementation of Multi-Dimensional Maximally Stable Extremal Regions” Feb. 7, 2007, pp. 1-7. |
VLFeat—Tutorials—MSER, retrieved from http://www.vlfeat.org/overview/mser.html, Apr. 30, 2012, pp. 1-2. |
Chaudhuri B., Ed., “Digital Document Processing—Major Directions and Recent Advances”, 2007, Springer-Verlag London Limited, XP002715747, ISBN : 978-1-84628-501-1 pp. 103-106, p. 106, section “5.3.5 Zone Separation and Character Segmentation”, paragraph 1. |
Chaudhuri B.B., et al., “An OCR system to read two Indian language scripts: Bangla and Devnagari (Hindi)”, Proceedings of the 4th International Conference on Document Analysis and Recognition. (ICDAR). Ulm, Germany, Aug. 18-20, 1997; [Proceedings of the ICDAR], Los Alamitos, IEEE Comp. Soc, US, vol. 2, Aug. 18, 1997, pp. 1011-1015, XP010244882, DOI: 10.1109/ICDAR.1997.620662 ISBN: 978-0-8186-7898-1 the whole document. |
Chaudhury S (Eds.): “OCR Technical Report for the project Development of Robust Document Analysis and Recognition System for Printed Indian Scripts”, 2008, pp. 149-153, XP002712777, Retrieved from the Internet: URL:http://researchweb.iiit.ac.inj-jinesh/ocrDesignDoc.pdf [retrieved on Sep. 5, 2013]. |
Chen Y.L., “A knowledge-based approach for textual information extraction from mixed text/graphics complex document images”, Systems Man and Cybernetics (SMC), 2010 IEEE International Conference on, IEEE, Piscataway, NJ, USA, Oct. 10, 2010, pp. 3270-3277, XP031806156, ISBN: 978-1-4244-6586-6. |
Dalal N., et al., “Histograms of oriented gradients for human detection”, Computer Vision and Pattern Recognition, 2005 IEEE Computer Society Conference on, IEEE, Piscataway, NJ, USA, Jun. 25, 2005, pp. 886-893 vol. 1, XP031330347, ISBN: 978-0-7695-2372-9 Section 6.3. |
Forssen P.E., et al., “Shape Descriptors for Maximally Stable Extremal Regions”, Computer Vision, 2007. ICCV 2007. IEEE 11th International Conference on, IEEE, PI, Oct. 1, 2007, pp. 1-8, XP031194514 , ISBN: 978-1-4244-1630-1 abstract Section 2. Multi-resoltuion MSER. |
International Search Report and Written Opinion—PCT/US2013/048830—ISA/EPO—Oct. 18, 2013. |
Minoru M., Ed., “Character Recognition”, Aug. 2010, Sciyo, XP002715748, ISBN: 978-953-307-105-3 pp. 91-95, p. 92, secton “7.3 Baseline Detection Process”. |
Pal U et al., “Multi-skew detection of Indian script documents” Document Analysis and Recognition, 2001. Proceedings. Sixth International Conference on Seattle, WA, USA Sep. 10-13, 2001, Los Aalmitos, CA, USA, IEEE Comput. Soc. US, Sep. 10, 2001, pp. 292-296, XP010560519, DOI:10.1109/ICDAR.2001.953801, ISBN: 978-0-7695-1263-1. |
Pal U., et al., “OCR in Bangla: an Indo-Bangladeshi language”, Pattern Recognition, 1994. vol. 2—Conference B: Computer Vision & Image Processing., Proceedings of the 12th IAPR International. Conferenc E on Jerusalem, Israel Oct. 9-13, 1994, Los Alamitos, CA, USA, IEEE Comput. Soc, vol. 2, Oct. 9, 1994, pp. 269-273, XP010216292, DOI: 10.1109/ICPR.1994.576917 ISBN: 978-0-8186-6270-6 the whole document. |
Premaratne H.L., et al., “Lexicon and hidden Markov model-based optimisation of the recognised Sinhala script”, Pattern Recognition Letters, Elsevier, Amsterdam, NL, vol. 27, No. 6, Apr. 15, 2006, pp. 696-705, XP027922538, ISSN: 0167-8655. |
Ray A.K et al., “Information Technology—Principles and Applications”. 2004. Prentice-Hall of India Private Limited. New Delhi! XP002712579, ISBN: 81-203-2184-7, pp. 529-531. |
Senda S., et al., “Fast String Searching in a Character Lattice,” IEICE Transactions on Information and Systems, Information & Systems Society, Tokyo, JP, vol. E77-D, No. 7, Jul. 1, 1994, pp. 846-851, XP000445299, ISSN: 0916-8532. |
Senk V., et al., “A new bidirectional algorithm for decoding trellis codes,” Eurocon' 2001, Trends in Communications, International Conference on Jul. 4-7, 2001, Piscataway, NJ, USA, IEEE, Jul. 4, 2001, pp. 34-36, vol. I, XP032155513, DOI :10.1109/EURCON.2001.937757 ISBN : 978-0-7803-6490-5. |
Sinha R.M.K., et al., “On Devanagari document processing”, Systems, Man and Cybernetics, 1995. Intelligent Systems for the 21stT Century., IEEE International Conference on Vancouver, BC, Canada Oct. 22-25, 1995, New York, NY, USA,IEEE, US, vol. 2, Oct. 22, 1995, pp. 1621-1626, XP010194509, DOI: 10.1109/ICSMC.1995.538004 ISBN: 978-0-7803-2559-3 the whole document. |
Song Y., et al., “A Handwritten Character Extraction Algorithm for Multi-language Document Image”, 2011 International Conference on Document Analysis and Recognition, Sep. 18, 2011, pp. 93-98, XP055068675, DOI: 10.1109/ICDAR.2011.28 ISBN: 978-1-45-771350-7. |
Uchida S et al., “Skew Estimation by Instances”, 2008 The Eighth IAPR International Workshop on Document Analysis Systems, Sep. 1, 2008, pp. 201-208, XP055078375, DOI: 10.1109/DAS.2008.22, ISBN: 978-0-76-953337-7. |
Unser M., “Sum and Difference Histograms for Texture Classification”, Transactions on Pattern Analysis and Machine Intelligence, IEEE, Piscataway, USA, vol. 30, No. 1, Jan. 1, 1986, pp. 118-125, XP011242912, ISSN: 0162-8828 section A; p. 122, right-hand column p. 123. |
Wu V., et al., “TextFinder: An Automatic System to Detect and Recognize Text In Images”, IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 21. No. 11, Nov. 1, 1999, pp. 1224-1229, XP055068381. |
Lowe, D.G., “Distinctive Image Features from Scale-Invariant Keypoints,” International Journal of Computer Vision, Jan. 5, 2004, 28 pp. |
Newell, A.J., et al.,“Multiscale histogram of oriented gradient descriptors for robust character recognition”, 2011 International Conference on Document Analysis and Recognition (ICDAR), IEEE, 2011, 5 pp. |
Wikipedia, “Connected-Component Labeling,” retrieved from http://en.wikipedia.org/wiki/Connected-component—labeling on May 14, 2012, date believed to be prior to Mar. 14, 2013, 7 pages. |
Wikipedia, “Histogram of Oriented Gradients,” retrieved from http://en.wikipedia.org/wiki/Histogram—of—oriented—gradients on Apr. 30, 2015, date believed to be prior to Mar. 14, 2013, 7 pages. |
Kristensen, F., et al., “Real-Time Extraction of Maximally Stable Extremal Regions on an FPGA,” IEEE International Symposium on Circuits and Systems 2007 (ISCAS 2007), New Orleans, LA, May 27-30, 2007, pp. 165-168. |
Bansal, et al., “Partitioning and Searching Dictionary for Correction of Optically Read Devanagari Character Strings,” International Journal on Document Analysis and Recognition manuscript, IJDAR 4(4): 269-280 (2002). |
Kompalli, et al., “Devanagari OCR using a recognition driven segmentation framework and stochastic language models,” IJDAR (2009) 12, pp. 123-138. |
Lehal, et al., “Feature Extraction and Classification for OCR of Gurmukhi Script,” Journal of Vivek, 12, pp. 2-12, 1999. |
Number | Date | Country | |
---|---|---|---|
20140023274 A1 | Jan 2014 | US |
Number | Date | Country | |
---|---|---|---|
61677291 | Jul 2012 | US | |
61673606 | Jul 2012 | US |