Feature extraction and use with a probability density function (PDF) divergence metric
An image of real world is processed to identify blocks as candidates to be recognized. Each block is subdivided into sub-blocks, and each sub-block is traversed to obtain counts, in a group for each sub-block. Each count in the group is either of presence of transitions between intensity values of pixels or of absence of transition between intensity values of pixels. Hence, each pixel in a sub-block contributes to at least one of the counts in each group. The counts in a group for a sub-block are normalized, based at least on a total number of pixels in the sub-block. Vector(s) for each sub-block including such normalized counts may be compared with multiple predetermined vectors of corresponding symbols in a set, using any metric of divergence between probability density functions (e.g. Jensen-Shannon divergence metric). Whichever symbol has a predetermined vector that most closely matches the vector(s) is identified and stored.
Latest QUALCOMM Incorporated Patents:
- Path management with direct device communication
- Security for multi-link operation in a wireless local area network (WLAN)
- Data collection enhancements for secondary cell groups
- Downlink/uplink (DL/UL) switching capability reporting for systems with high subcarrier spacing (SCS)
- Method for reducing gamut mapping luminance loss
This application claims priority under 35 USC §119 (e) from U.S. Provisional Application No. 61/673,677 filed on Jul. 19, 2012 and entitled “Feature Extraction And Use With A Probability Density Function (PDF) Divergence Metric”, which is incorporated herein by reference in its entirety.
FIELDThis patent application relates to apparatuses and methods that process an image from a camera of a mobile device, to identify symbols therein.
BACKGROUNDHandheld devices and mobile devices such as a cell phone 108 (
Recognition of text in image 107 (
Block 121 which is to be subject to recognition may be formed to fit tightly around an MSER (e.g. so that each of four sides of the block touch a boundary of the region). In some examples a rectangular portion 103 (
A block 121 that is a candidate for recognition may be further divided up, by use of a predetermined grid (
Optical character recognition (OCR) methods of the prior art originate in the field of document processing, wherein a document's image obtained by use of a flatbed scanner contains a series of lines of text (e.g. 20 lines of text). Such prior art OCR methods may extract a vector (called “feature vector”) from binary values of pixels in each sub-block 121I. Feature vectors Z in number are sometimes obtained for a block 121 that is subdivided into Z sub-blocks, and these Z vectors may be stacked to form a block-level vector that represents the entirety of block 121, and it is this block-level vector that is then compared with a library of reference vectors generated ahead of time (based on training images of letters of an alphabet to be recognized). Next, a letter of an alphabet which is represented by a reference vector in the library that most closely matches the vector of block 121 is identified as recognized, so as to conclude the OCR (“document” OCR) of a character in block 121 in portion 103 of a document's image.
One feature vector of such prior art has four dimensions, each dimension representing a gradient, based on a count of transitions in intensity, between the two binary values along a row or a column in a sub-block. Specifically, two dimensions in the feature vector keep count of black-to-white and white-to-black transitions in the horizontal direction (e.g. left to right) along a row of pixels in the sub-block, and two additional dimensions in the feature vector keep count of black-to-white and white-to-black transitions in the vertical direction (e.g. bottom to top) along a column of the sub-block. Exactly four counts are formed. In forming the four counts, block 121 is assumed to be surrounded by a white boundary, and any transition at the boundary is counted as a half transition. These four counts are divided by total number of pixels N in each sub-block, even though the sum of these four counts does not add up to N.
In the example shown in
Hence, a histogram of the above-described intensity transitions in sub-block 121I has the following four values (0, 3, 1, 0), as shown in
In some prior art methods, an 80 dimension vector of the type described above is compared with reference vectors (each of which also has 80 dimensions) in the library, by use of a Euclidean distance metric (square root of squares of difference in each dimension), or a simplified version thereof (e.g. sum of absolute value of difference in each dimension). One issue that the current inventors find in use of such distance metrics to identify characters is that the above-described division by N, which is used to generate a four dimensional vector 121V as described above, affects accuracy because the sum of the four elements prior to division by N does not add up to N (and, in the example shown in
Moreover, the current inventors note that ambiguity can arise in use of four counts to represent nine pixels, which can increase the difficulty in recognizing (from a handheld camera captured image), letters of an alphabet whose rules permit ambiguity, such as Devanagari wherein, for example, a left half portion of a letter can be combined with another letter, and/or a letter may or may not have an accent mark at the bottom or the top of that letter, etc. Furthermore, the current inventors note that use of just four counts may be insufficient to represent details necessary to uniquely characterize regions of text, in certain scripts such as Devanagari that have a large number of characters in their alphabet. Therefore, the current inventors believe that use of an 80 element feature vector (obtained by cascading groups of 4 counts for 20 sub-blocks) can result in false positives and/or negatives that render prior art techniques impractical.
Hence, the current inventors believe there is a need for a new vector that is more representative of pixels in the image, and use of the new vector with a new comparison measure that provides a better match to a reference vector in a library, as described below.
SUMMARYIn several embodiments, an image of real world (or a frame of video, also called image) is processed to identify one or more portions therein, for use as candidates to be compared with a set of symbols that have predetermined shapes (also called “reference symbols”), such as logos, traffic signs, and/or letters of a predetermined alphabet or script such as Devanagari. Each such image portion is traversed to generate counts in a group of counts. The group of counts has a predetermined size, e.g. 6 counts or 8 counts. Each count in the group indicates either that there is a change of at least a predetermined amount between intensity values of two pixels (in a given direction of traversal) or that the change in intensity values of two pixels (in the given direction) is smaller than the predetermined amount (e.g. change may be absent or zero, when binary values of pixel intensities are identical). Hence, each pixel in an image portion contributes to at least one of the counts. Moreover, the group of counts does not encode positions at which the changes occur in the image (so the group of counts results in a lossy compression).
Depending on the embodiment, the counts in such a group may be normalized, e.g. based on a number of pixels in the image portion (and in embodiments that traverse the image portion in multiple directions, also based on the number of directions of traversal), so that the sum of the counts becomes 1. One or more vector(s) based on such counts may be compared with multiple predetermined vectors of reference symbols (e.g. letters of an alphabet), using any measure of difference between probability distributions, such as the Jensen-Shannon divergence metric. Whichever reference symbol (e.g. letter of the alphabet) has a predetermined vector that most closely matches the vector(s) for the image portion is thereby identified and stored in memory, as being recognized to be present in the image.
It is to be understood that several other aspects of the described embodiments 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 are to be regarded as illustrative in nature.
In several aspects of the described embodiments, one or more portions of a natural image (also called “handheld camera captured image”) of a scene of a real world are received in an act 201 (
In some embodiments, the image portions received in act 201 are blocks that are rectangular in shape, identified from a rectangular portion 103 (
In one illustrative example, a predetermined test to detect pixels that form a header line or shiro-rekha 192 (
In act 202 of several embodiments, an image portion (e.g. block 121) which is received in act 201 is traversed (e.g. by one or more processors in a mobile device 401, such as a smart phone), to identify changes in intensity of pixels in the image. Then in act 203, the intensity changes are used (e.g. by one or more processors) to generate a group of counts for the image portion, such as group 321 in
Regardless of a specific size that is predetermined for a group, an intensity of each pixel in the portion of the image is used in act 203 (e.g. by one or more processors) to generate at least one count in the group, by checking (as per act 203A in
Specifically, in act 203B, a count (“first count”) is incremented when an intensity change, in traversing from a current pixel to a next pixel, exceeds the predetermined threshold. An intensity change in grayscale values may exceed the threshold of 100, for example, when the current pixel is at grayscale value 10 and the next pixel is at grayscale value 120. Similarly, an intensity change in binary values may exceed the threshold of 0, for example, when the current pixel is of binary value 0 and the next pixel is of binary value 1.
When the intensity change does not exceed the predetermined threshold, act 203C may be performed to increment another count (“second count”), when the intensity change is positive. When the intensity change is not positive, yet another count in the group may be incremented as per act 203D. The intensity change is negative, for example, when the current pixel is of grayscale value 255 and the next pixel is of grayscale value 0 (with intensity change being positive when the values are the opposite, e.g. current pixel is of grayscale value 0 and the next pixel is of grayscale value 255).
After any count in the group is incremented (e.g. by one or more processors), act 204 is performed, to check if all pixels in the image portion have been traversed and if not, the one or more processors loop back to act 202 (described above). When all pixels in the image portion have been traversed, the one or more processors of some aspects perform act 205, to recognize a symbol (e.g. a character in Devanagari script), as follows. Specifically, act 205 compares a vector (also called “feature” vector) that is automatically derived based on at least the group of counts, with predetermined vectors for corresponding symbols in a set, to identify a specific symbol, and the specific symbol 354 identified is then stored in one or more memories 329 (
Note that act 205 uses a measure of difference, between two probability distributions, to perform the comparison in several embodiments. In order to use such a measure, the above-described feature vector is obtained in some embodiments by dividing each count in a group by N to obtain an element of the vector, wherein N is the number of pixels in the image portion. In several embodiments, the elements in a feature vector are fractions that when added up to one another, sum to the value 1 (e.g. after rounding up). A feature vector of the type described above, with elements that add to 1, enables comparison of such a vector with other similarly-generated vectors (whose elements also add up to 1), by use of a measure of difference between probability distributions, such as Jensen-Shannon divergence or any other metric of divergence. The measure that is used to compare vectors of the type described above may or may not be symmetric, depending on the embodiment.
The above-described method illustrated in
Then, in act 212 (
Independent of how each sub-block is traversed, each count in the group identifies either a number of times that changes in intensity (of pixels adjacent to one another in the sub-block) are sufficiently large to exceed a threshold (also referred to as a “gradient count”), or a number of times that the intensity changes are sufficiently small (below the threshold) to be treated as absent (also referred to as a “constant count”). Both kinds of the just-described counts (namely at least one gradient count and at least one constant count) are maintained in each group for each sub-block in some embodiments of the type described herein, thereby to ensure that a sum of counts (for a sub-group in each traversal direction respectively) is equal to a number of pixels in each sub-block.
Note that the counts being generated in act 212 as described above do not encode positions in a sub-block (e.g. a specific row among the multiple rows and a specific column among the multiple columns), at which changes in pixel intensity occur in the sub-block. Hence, such counts indicate the frequency of intensity changes at sub-block level not at pixel level (so, these counts are common across all pixels in a sub-block). So, counts generated in act 212 (“sub-block level counts”) are insufficient to re-construct a specific intensity value of any specific pixel in a sub-block. Therefore, generation of counts in act 212 may be conceptually thought of as averaging across pixel positions in the two dimensions of a sub-block, thereby performing a “lossy” compression of pixel intensities in the sub-block (in contrast to “lossless” compression, encoding information sufficient to re-construct intensity of each pixel in a sub-block).
Referring to the sub-block 121I shown in
Note that the sum of these four values (described in the preceding paragraph) is 0+3+5+1 which is 9, identical to the number of pixels in sub-block 121I. Hence, a contribution of each pixel in a sub-block is being automatically included by act 212 (
Some embodiments perform traversals in more than one direction, and hence act 214 (
In some embodiments that perform two traversals in act 212 of sub-block 121I, e.g. in the horizontal and vertical directions, a group of eight counts 301-308 (
In the method of
Depending on the embodiment, the elements of vectors of each sub-block may be divided by the number of sub-blocks Z in each block, so that the results when used as elements of a block-level vector, add up to 1. Next, in act 217, one or more processors of mobile device 401 check whether all blocks received in act 201 have been processed and if not return to act 211 (described above). When the result of act 217 is that symbols in all blocks have been recognized, then the symbols that have just been recognized by act 216 may be displayed on a screen, such as screen 403 or 402 (
Certain described embodiments use a variant of the 4S vector, also referred to as a 3S vector that is stroke width invariant, as illustrated in
To improve the stroke width invariance, certain embodiments maintain, in each direction of traversal, a single constant count for no transition in intensities, regardless of whether the intensity at a current pixel is black or the intensity at the current pixel is white (also called white-and-black constant count). Therefore, in the example of the 4S vector illustrated in
In the 3S vector as well, contributions each of the N pixels of a sub-block are included S times in the counts of these embodiments. Accordingly, the just-described counts 301, 302, 309, 305, 306, 310 (
In some embodiments that use the 3S vector, the value of a constant count in a given direction is additionally obtained by subtracting the gradient counts from the total number of pixels N in a sub-block. So in the example illustrated in
In several of the described embodiments, act 216 described above uses a metric of divergence of probability density functions (PDFs), because the vector(s) are deliberately generated (in act 212, e.g. by a vector generator 351 in
The above-described use of a metric of PDF divergence in in act 511 of the described embodiments provides a more accurate comparison than the prior art Euclidean distance or its simplified version. As will be readily apparent in view of this detailed description, any metric of divergence of probability density functions can be used in act 511, and some embodiments use the Jensen-Shannon divergence metric, as described below.
Specifically, a value of the Jensen-Shannon divergence metric is computed (e.g. in act 511) as follows in some embodiments. A predetermined vector is hereinafter P, and the vector of normalized counts for a block is hereinafter Q. In act 511, one or more processors in a mobile device 401 compute a mean vector as
followed by computing the metric as
wherein ln is natural logarithm, and
wherein i represents an index to vectors P and Q.
Note that although the Jensen-Shannon divergence metric is used in some embodiments as described above, other embodiments use other metrics of divergence between probability density functions (PDFs), as will be readily apparent in view of this detailed description.
Mobile device 401 of some embodiments that performs the method shown in
In some embodiments, vector generator 351 implements means for traversing a portion of the image to: identify changes in intensities of pixels in the image, and generate a group of counts based on the changes, without encoding positions at which the changes occur in the image, as described above. During operation, vector generator 351 of such embodiments uses an intensity of each pixel in the portion of the image and position of pixels (e.g. identified in a list of coordinates of pixels), to generate at least one count in the group of counts 355, wherein at least a first count in the group of counts is incremented when an intensity change between two pixels, in a direction of traversal, exceeds a predetermined threshold, and wherein at least a second count in the group of counts is incremented, when the intensity change is positive and the intensity change does not exceed the predetermined threshold. In several such embodiments, the PDF comparator 352 implements means for using a measure of difference between two probability distribution functions (PDFs). During operation, PDF comparator 352 of such embodiments compares a vector based on at least the group of counts 355 (e.g. received from vector generator 351) with vectors of corresponding symbols in a library 353 (
In addition to memory 329, mobile device 401 may include one or more other types of memory such as flash memory (or SD card) 1008 and/or a hard disk and/or an optical disk (also called “secondary memory”) to store data and/or software for loading into memory 329 (also called “main memory”) and/or for use by processor(s) 404. Mobile device 401 may further include a wireless transmitter and receiver in transceiver 1010 and/or any other communication interfaces 1009. It should be understood that mobile device 401 may be any portable electronic device such as a cellular or other wireless communication device, personal communication system (PCS) device, personal navigation device (PND), Personal Information Manager (PIM), Personal Digital Assistant (PDA), laptop, camera, smartphone, tablet (such as iPad available from Apple Inc) or other suitable mobile platform that is capable of creating an augmented reality (AR) environment.
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 means for remotely controlling a real world object which may be a toy, in response to user input on mobile device 401 e.g. by use of transmitter in 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. 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 perform reference free tracking and/or reference based tracking using a local detector in mobile device 401 to detect predetermined symbols in images, in implementations that execute the OCR software 1014 to identify, e.g. characters of text in an image. The above-described identification of blocks for use by OCR software 1014 may be performed in software (executed by one or more processors or processor cores) or in hardware or in firmware, or in any combination thereof.
In some embodiments of mobile device 401, the above-described vector generator 351 and PDF comparator 352 are included in OCR software 1014 that is implemented by a processor 404 executing the software 320 in memory 329 of mobile device 401, although in other embodiments any one or more of vector generator 351 and PDF comparator 352 are 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 of OCR software 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 vector generator 351 and PDF comparator 352 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 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 type of media 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 (
In some embodiments, an apparatus as described herein is implemented by the following: a camera implements means for receiving a portion of an image of a scene of real world and a processor is programmed to implement means for traversing at least the portion of the image to identify changes in intensities of pixels in the image and generate a group of counts based on the changes, without encoding positions at which the changes occur in the image. Depending on the embodiment, the just-described processor or another processor in the apparatus is programmed to implement means for using a measure of difference between two probability distributions, to compare a vector based on at least the group of counts with multiple predetermined vectors of corresponding symbols in a set, to identify a specific symbol therein. Furthermore, any of the just-described processors may be configured to implement means for storing the specific symbol in a memory, as being recognized in the image.
Any machine-readable medium tangibly embodying software instructions (also called “computer instructions”) may be used in implementing the methodologies described herein. For example, software 320 (
A non-transitory computer-readable storage media includes physical computer storage media. A storage medium may be any available 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 non-transitory computer-readable media.
Although illustrated in connection with specific embodiments for instructional purposes, the embodiments are not limited thereto. Hence, although an item 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 (
Various adaptations and modifications may be made without departing from the scope of the embodiments. Therefore, the spirit and scope of the appended claims should not be limited to the foregoing description. It is to be understood that several other aspects of the embodiments 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. Numerous such embodiments are encompassed by the attached claims.
Claims
1. A method of symbol recognition, the method comprising:
- receiving a portion of an image of a scene of real world;
- traversing at least the portion of the image to: identify changes in intensities of pixels in the image; and generate a group of counts based on the changes, without encoding positions at which the changes occur in the image;
- wherein an intensity of each pixel in the portion of the image is used to generate at least one count in the group of counts;
- wherein a size of the group of counts is predetermined;
- wherein at least a first count in the group of counts is incremented, when an intensity change between two pixels, in a direction of traversal, exceeds a predetermined threshold;
- wherein at least a second count in the group of counts is incremented, when the intensity change is positive and the intensity change does not exceed the predetermined threshold;
- using a measure of difference between two probability distributions, to compare a vector that is based on at least the group of counts with a plurality of predetermined vectors of corresponding symbols in a set, to identify a specific symbol therein; and
- storing the specific symbol in a memory, as being recognized in the image;
- wherein the memory is coupled to one or more processors; and
- wherein the traversing and the using are performed by the one or more processors.
2. The method of claim 1 wherein the portion is hereinafter referred to as a sub-block, and the sub-block is one of a plurality of sub-blocks comprised in a block in the image, the method further comprising:
- dividing the block in the image to obtain the plurality of sub-blocks; and
- assembling the vector by appending to one another, a plurality of groups of counts including said group of counts generated by the traversing;
- wherein the plurality of groups of counts are obtained from the plurality of sub-blocks, by repeating the traversing; and
- wherein the plurality of groups of counts are appended in a predetermined order, to obtain the vector.
3. The method of claim 2 wherein:
- the block is identified by use of a predetermined test; and
- the predetermined test is to detect pixels in the image that form a shiro-rekha;
- wherein the shiro-rekha connects a plurality of tops of characters, of a word in Devanagari.
4. The method of claim 1 further comprising:
- the one or more processors dividing each count in the group of counts by at least a total number of pixels N in the portion of the image.
5. The method of claim 1 wherein:
- the portion is traversed multiple times in multiple directions respectively.
6. The method of claim 1 wherein:
- the first count is incremented during the traversing when the direction of traversal is a predetermined first direction;
- the second count is incremented during the traversing when the direction of traversal is the predetermined first direction;
- a third count in the group of counts is incremented during the traversing when the intensity change, in the predetermined first direction, is negative and an absolute value thereof exceeds the predetermined threshold;
- wherein a predetermined second direction is perpendicular to the predetermined first direction;
- a fourth count in the group of counts is incremented during the traversing when the direction of traversal is the predetermined second direction, and the intensity change does not exceed the predetermined threshold;
- a fifth count in the group of counts is incremented during the traversing when the direction of traversal is the predetermined second direction, and the intensity exceeds the predetermined threshold; and
- a sixth count in the group of counts is incremented during the traversing when the intensity change, in the predetermined second direction, is negative and the absolute value thereof exceeds the predetermined threshold.
7. The method of claim 1 wherein:
- the first count is incremented during the traversing when the direction of traversal is a predetermined first direction;
- the second count is incremented during the traversing when the direction of traversal is the predetermined first direction;
- a third count in the group of counts is incremented during the traversing when the intensity change, in the predetermined first direction, is negative and an absolute value thereof exceeds the predetermined threshold;
- a fourth count is incremented during the traversing when the intensity change, in the predetermined first direction, is negative and the absolute value thereof does not exceed the predetermined threshold;
- wherein a predetermined second direction is perpendicular to the predetermined first direction;
- a fifth count in the group of counts is incremented during the traversing when the direction of traversal is the predetermined second direction, and the intensity change does not exceed the predetermined threshold;
- a sixth count in the group of counts is incremented during the traversing when the direction of traversal is the predetermined second direction, and the intensity exceeds the predetermined threshold;
- a seventh count in the group of counts is incremented during the traversing when the intensity change, in the predetermined second direction, is negative and the absolute value thereof exceeds the predetermined threshold; and
- an eighth count is incremented during the traversing when the intensity change, in the predetermined second direction, is negative and the absolute value thereof does not exceed the predetermined threshold.
8. The method of claim 1 wherein:
- the intensities of pixels in the image are binarized;
- a third count in the group of counts is incremented during the traversing when the direction of traversal is a predetermined first direction, and the intensity change between said two pixels is from the second intensity of binary value 1 to the first intensity of binary value 0;
- wherein a predetermined second direction is perpendicular to the predetermined first direction;
- a fourth count in the group of counts is incremented during the traversing when the intensity change, in the predetermined second direction, is non-existent and the intensity of each of said two pixels is identical, of binary value 0 or 1;
- a fifth count in the group of counts is incremented during the traversing when the direction of traversal is the predetermined second direction, and the intensity change between said two pixels is from the first intensity of binary value 0 to the second intensity of binary value 1; and
- a sixth count in the group of counts is incremented during the traversing when the direction of traversal is the predetermined second direction, and the intensity change between said two pixels is from the second intensity of binary value 1 to the first intensity of binary value 0.
9. The method of claim 1 wherein:
- the intensities of pixels in the image are binarized;
- a third count is incremented during the traversing when the intensity change, in a predetermined first direction, is non-existent and the intensity of each of said two pixels is identical to binary value 1;
- a fourth count in the group of counts is incremented during the traversing when the direction of traversal is the predetermined first direction, and the intensity change between said two pixels is from binary value 1 to binary value 0;
- wherein a predetermined second direction is perpendicular to the predetermined first direction;
- a fifth count in the group of counts is incremented during the traversing when the intensity change, in the predetermined second direction, is non-existent and the intensity of each of said two pixels is identical to binary value 0;
- a sixth count in the group of counts is incremented during the traversing when the intensity change, in the predetermined second direction, is non-existent and the intensity of each of said two pixels is identical to binary value 1;
- a seventh count in the group of counts is incremented during the traversing when the direction of traversal is the predetermined second direction, and the intensity change between said two pixels is from binary value 0 to binary value 1; and
- a eighth count in the group of counts is incremented during the traversing when the direction of traversal is the predetermined second direction, and the intensity change between said two pixels is from binary value 1 to binary value 0.
10. The method of claim 1 wherein the specific symbol is at least one of:
- a predetermined logo;
- a traffic sign; or
- a predetermined letter of an alphabet written in a predetermined font.
11. The method of claim 1 wherein said using of the measure of difference comprises:
- computing a plurality of values of the measure of difference, respectively between said vector and said plurality of predetermined vectors of corresponding symbols; and
- identifying a value among the plurality of values for being smallest;
- wherein a predetermined vector, of the specific symbol identified as being recognized in the image, is used in said computing of the value identified as being smallest.
12. The method of claim 1 wherein: M = 1 2 ( P + Q ); and 1 2 ∑ i P ( i ) ln [ P ( i ) M ( i ) ] + 1 2 ∑ i Q ( i ) ln [ Q ( i ) M ( i ) ]
- wherein a predetermined vector of the specific symbol is hereinafter P and the vector for said portion of the image is hereinafter Q, the method further comprising:
- computing a mean vector as
- computing the measure of difference as
- wherein ln is natural logarithm and i is an index representing an element of vectors P and Q.
13. A mobile device to perform symbol recognition, the mobile device comprising:
- one or more memories comprising a plurality of portions identified from an image of a scene of real world, as candidates to be recognized;
- one or more processors configured to traverse at least one portion of the image to: identify changes in intensities of pixels in the image; and generate a group of counts based on the changes, without encoding positions at which the changes occur in the image;
- wherein an intensity of each pixel in the at least one portion of the image is used to generate at least one count in the group of counts;
- wherein a size of the group of counts is predetermined;
- wherein at least a first count in the group of counts is incremented, when an intensity change between two pixels, in a direction of traversal, exceeds a predetermined threshold;
- wherein at least a second count in the group of counts is incremented, when the intensity change is positive and the intensity change does not exceed the predetermined threshold;
- wherein the one or more processors are configured to use a measure of difference between two probability distributions, to compare a vector based on at least the group of counts with a plurality of predetermined vectors of corresponding symbols in a set, to identify a specific symbol therein; and
- wherein the one or more processors are configured to store the specific symbol in a memory, as being recognized in the image;
- wherein the memory is coupled to the one or more processors.
14. The mobile device of claim 13 wherein:
- the first count is incremented by the one or more processors during the traversing when the direction of traversal is a predetermined first direction;
- the second count is incremented by the one or more processors during the traversing when the direction of traversal is the predetermined first direction;
- a third count in the group of counts is incremented by the one or more processors during the traversing when the intensity change, in the predetermined first direction, is negative and an absolute value thereof exceeds the predetermined threshold;
- wherein a predetermined second direction is perpendicular to the predetermined first direction;
- a fourth count in the group of counts is incremented by the one or more processors during the traversing when the direction of traversal is the predetermined second direction, and the intensity change does not exceed the predetermined threshold;
- a fifth count in the group of counts is incremented by the one or more processors during the traversing when the direction of traversal is the predetermined second direction, and the intensity exceeds the predetermined threshold; and
- a sixth count in the group of counts is incremented by the one or more processors during the traversing when the intensity change, in the predetermined second direction, is negative and the absolute value thereof exceeds the predetermined threshold.
15. The mobile device of claim 13 wherein:
- the first count is incremented by the one or more processors during the traversing when the direction of traversal is a predetermined first direction;
- the second count is incremented by the one or more processors during the traversing when the direction of traversal is the predetermined first direction;
- a third count in the group of counts is incremented by the one or more processors during the traversing when the intensity change, in the predetermined first direction, is negative and an absolute value thereof exceeds the predetermined threshold;
- a fourth count is incremented by the one or more processors during the traversing when the intensity change, in the predetermined first direction, is negative and the absolute value thereof does not exceed the predetermined threshold;
- wherein a predetermined second direction is perpendicular to the predetermined first direction;
- a fifth count in the group of counts is incremented by the one or more processors during the traversing when the direction of traversal is the predetermined second direction, and the intensity change does not exceed the predetermined threshold;
- a sixth count in the group of counts is incremented by the one or more processors during the traversing when the direction of traversal is the predetermined second direction, and the intensity exceeds the predetermined threshold;
- a seventh count in the group of counts is incremented by the one or more processors during the traversing when the intensity change, in the predetermined second direction, is negative and the absolute value thereof exceeds the predetermined threshold; and
- an eighth count is incremented by the one or more processors during the traversing when the intensity change, in the predetermined second direction, is negative and the absolute value thereof does not exceed the predetermined threshold.
16. The mobile device of claim 13 wherein:
- the intensities of pixels in the image are binarized;
- a third count in the group of counts is incremented by the one or more processors during the traversing when the direction of traversal is a predetermined first direction, and the intensity change between said two pixels is from the second intensity of binary value 1 to the first intensity of binary value 0;
- wherein a predetermined second direction is perpendicular to the predetermined first direction;
- a fourth count in the group of counts is incremented by the one or more processors during the traversing when the intensity change, in the predetermined second direction, is non-existent and the intensity of each of said two pixels is identical, of binary value 0 or 1;
- a fifth count in the group of counts is incremented by the one or more processors during the traversing when the direction of traversal is the predetermined second direction, and the intensity change between said two pixels is from the first intensity of binary value 0 to the second intensity of binary value 1; and
- a sixth count in the group of counts is incremented by the one or more processors during the traversing when the direction of traversal is the predetermined second direction, and the intensity change between said two pixels is from the second intensity of binary value 1 to the first intensity of binary value 0.
17. The mobile device of claim 13 wherein:
- the intensities of pixels in the image are binarized;
- a third count is incremented by the one or more processors during the traversing when the intensity change, in a predetermined first direction, is non-existent and the intensity of each of said two pixels is identical to binary value 1;
- a fourth count in the group of counts is incremented by the one or more processors during the traversing when the direction of traversal is the predetermined first direction, and the intensity change between said two pixels is from binary value 1 to binary value 0;
- wherein a predetermined second direction is perpendicular to the predetermined first direction;
- a fifth count in the group of counts is incremented by the one or more processors during the traversing when the intensity change, in the predetermined second direction, is non-existent and the intensity of each of said two pixels is identical to binary value 0;
- a sixth count in the group of counts is incremented by the one or more processors during the traversing when the intensity change, in the predetermined second direction, is non-existent and the intensity of each of said two pixels is identical to binary value 1;
- a seventh count in the group of counts is incremented by the one or more processors during the traversing when the direction of traversal is the predetermined second direction, and the intensity change between said two pixels is from binary value 0 to binary value 1; and
- a eighth count in the group of counts is incremented by the one or more processors during the traversing when the direction of traversal is the predetermined second direction, and the intensity change between said two pixels is from binary value 1 to binary value 0.
18. One or more non-transitory storage media comprising instructions, which, when executed in a mobile device, cause one or more processors in the mobile device to perform operations, the instructions comprising:
- instructions to receive a portion of an image of a scene of real world;
- instructions to traverse at least the portion of the image to: identify changes in intensities of pixels in the image; and generate a group of counts based on the changes, without encoding positions at which the changes occur in the image;
- wherein an intensity of each pixel in the portion of the image is used to generate at least one count in the group of counts;
- wherein a size of the group of counts is predetermined;
- wherein at least a first count in the group of counts is incremented, when an intensity change between two pixels, in a direction of traversal, exceeds a predetermined threshold;
- wherein at least a second count in the group of counts is incremented, when the intensity change is positive and the intensity change does not exceed the predetermined threshold;
- instructions to use a measure of difference between two probability distributions, to compare a vector based on at least the group of counts with a plurality of predetermined vectors of corresponding symbols in a set, to identify a specific symbol therein; and
- instructions to store the specific symbol in a memory, as being recognized in the image;
- wherein the memory is coupled to the one or more processors.
19. The one or more non-transitory storage media of claim 18 wherein:
- the first count is incremented by execution of instructions to traverse when the direction of traversal is a predetermined first direction;
- the second count is incremented by execution of instructions to traverse when the direction of traversal is the predetermined first direction;
- a third count in the group of counts is incremented by execution of instructions to traverse when the intensity change, in the predetermined first direction, is negative and an absolute value thereof exceeds the predetermined threshold;
- wherein a predetermined second direction is perpendicular to the predetermined first direction;
- a fourth count in the group of counts is incremented by execution of instructions to traverse when the direction of traversal is the predetermined second direction, and the intensity change does not exceed the predetermined threshold;
- a fifth count in the group of counts is incremented by execution of instructions to traverse when the direction of traversal is the predetermined second direction, and the intensity exceeds the predetermined threshold; and
- a sixth count in the group of counts is incremented by execution of instructions to traverse when the intensity change, in the predetermined second direction, is negative and the absolute value thereof exceeds the predetermined threshold.
20. The one or more non-transitory storage media of claim 18 wherein:
- the first count is incremented by execution of instructions to traverse when the direction of traversal is a predetermined first direction;
- the second count is incremented by execution of instructions to traverse when the direction of traversal is the predetermined first direction;
- a third count in the group of counts is incremented by execution of instructions to traverse when the intensity change, in the predetermined first direction, is negative and an absolute value thereof exceeds the predetermined threshold;
- a fourth count is incremented by execution of instructions to traverse when the intensity change, in the predetermined first direction, is negative and the absolute value thereof does not exceed the predetermined threshold;
- wherein a predetermined second direction is perpendicular to the predetermined first direction;
- a fifth count in the group of counts is incremented by execution of instructions to traverse when the direction of traversal is the predetermined second direction, and the intensity change does not exceed the predetermined threshold;
- a sixth count in the group of counts is incremented by execution of instructions to traverse when the direction of traversal is the predetermined second direction, and the intensity exceeds the predetermined threshold;
- a seventh count in the group of counts is incremented by execution of instructions to traverse when the intensity change, in the predetermined second direction, is negative and the absolute value thereof exceeds the predetermined threshold; and
- an eighth count is incremented by execution of instructions to traverse when the intensity change, in the predetermined second direction, is negative and the absolute value thereof does not exceed the predetermined threshold.
21. An apparatus for symbol recognition, the apparatus comprising:
- means for receiving a portion of an image of a scene of real world;
- means for traversing the portion of the image to: identify changes in intensities of pixels in the image; and generate a group of counts based on the changes, without encoding positions at which the changes occur in the image;
- wherein an intensity of each pixel in the portion of the image is used to generate at least one count in the group of counts;
- wherein a size of the group of counts is predetermined;
- wherein at least a first count in the group of counts is incremented, when an intensity change between two pixels, in a direction of traversal, exceeds a predetermined threshold;
- wherein at least a second count in the group of counts is incremented, when the intensity change is positive and the intensity change does not exceed the predetermined threshold;
- means for using a measure of difference between two probability distributions, to compare a vector based on at least the group of counts with a plurality of predetermined vectors of corresponding symbols in a set, to identify a specific symbol therein; and
- means for storing the specific symbol in a memory, as being recognized in the image;
- wherein the memory is coupled to one or more processors.
22. The apparatus of claim 21 wherein:
- the first count is incremented by the means for traversing when the direction of traversal is a predetermined first direction;
- the second count is incremented by the means for traversing when the direction of traversal is the predetermined first direction;
- a third count in the group of counts is incremented by the means for traversing when the intensity change, in the predetermined first direction, is negative and an absolute value thereof exceeds the predetermined threshold;
- wherein a predetermined second direction is perpendicular to the predetermined first direction;
- a fourth count in the group of counts is incremented by the means for traversing when the direction of traversal is the predetermined second direction, and the intensity change does not exceed the predetermined threshold;
- a fifth count in the group of counts is incremented by the means for traversing when the direction of traversal is the predetermined second direction, and the intensity exceeds the predetermined threshold; and
- a sixth count in the group of counts is incremented by the means for traversing when the intensity change, in the predetermined second direction, is negative and the absolute value thereof exceeds the predetermined threshold.
23. The apparatus of claim 21 wherein:
- the first count is incremented by the means for traversing when the direction of traversal is a predetermined first direction;
- the second count is incremented by the means for traversing when the direction of traversal is the predetermined first direction;
- a third count in the group of counts is incremented by the means for traversing when the intensity change, in the predetermined first direction, is negative and an absolute value thereof exceeds the predetermined threshold;
- a fourth count is incremented by the means for traversing when the intensity change, in the predetermined first direction, is negative and the absolute value thereof does not exceed the predetermined threshold;
- wherein a predetermined second direction is perpendicular to the predetermined first direction;
- a fifth count in the group of counts is incremented by the means for traversing when the direction of traversal is the predetermined second direction, and the intensity change does not exceed the predetermined threshold;
- a sixth count in the group of counts is incremented by the means for traversing when the direction of traversal is the predetermined second direction, and the intensity exceeds the predetermined threshold;
- a seventh count in the group of counts is incremented by the means for traversing when the intensity change, in the predetermined second direction, is negative and the absolute value thereof exceeds the predetermined threshold; and
- an eighth count is incremented by the means for traversing when the intensity change, in the predetermined second direction, is negative and the absolute value thereof does not exceed the predetermined threshold.
3710321 | January 1973 | Rubenstein |
4654875 | March 31, 1987 | Srihari et al. |
5321768 | June 14, 1994 | Fenrich et al. |
5459739 | October 17, 1995 | Handley et al. |
5465304 | November 7, 1995 | Cullen et al. |
5519786 | May 21, 1996 | Courtney et al. |
5563403 | October 8, 1996 | Bessho et al. |
5633954 | May 27, 1997 | Gupta et al. |
5751850 | May 12, 1998 | Rindtorff |
5764799 | June 9, 1998 | Hong et al. |
5768451 | June 16, 1998 | Hisamitsu et al. |
5805747 | September 8, 1998 | Bradford |
5835633 | November 10, 1998 | Fujisaki et al. |
5844991 | December 1, 1998 | Hochberg et al. |
5978443 | November 2, 1999 | Patel |
6023536 | February 8, 2000 | Visser |
6092045 | July 18, 2000 | Stubley et al. |
6266439 | July 24, 2001 | Pollard et al. |
6393443 | May 21, 2002 | Rubin et al. |
6473517 | October 29, 2002 | Tyan et al. |
6674919 | January 6, 2004 | Ma et al. |
6678415 | January 13, 2004 | Popat et al. |
6687421 | February 3, 2004 | Navon |
6738512 | May 18, 2004 | Chen et al. |
6954795 | October 11, 2005 | Takao et al. |
7110621 | September 19, 2006 | Greene et al. |
7142727 | November 28, 2006 | Notovitz et al. |
7263223 | August 28, 2007 | Irwin |
7333676 | February 19, 2008 | Myers et al. |
7403661 | July 22, 2008 | Curry et al. |
7450268 | November 11, 2008 | Martinez et al. |
7724957 | May 25, 2010 | Abdulkader |
7738706 | June 15, 2010 | Aradhye et al. |
7783117 | August 24, 2010 | Liu et al. |
7817855 | October 19, 2010 | Yuille et al. |
7889948 | February 15, 2011 | Steedly et al. |
7961948 | June 14, 2011 | Katsuyama |
7984076 | July 19, 2011 | Kobayashi et al. |
8009928 | August 30, 2011 | Manmatha et al. |
8189961 | May 29, 2012 | Nijemcevic et al. |
8194983 | June 5, 2012 | Al-Omari et al. |
8285082 | October 9, 2012 | Heck |
8306325 | November 6, 2012 | Chang |
8417059 | April 9, 2013 | Yamada |
8542926 | September 24, 2013 | Panjwani et al. |
8644646 | February 4, 2014 | Heck |
20020037104 | March 28, 2002 | Myers et al. |
20030026482 | February 6, 2003 | Dance |
20030099395 | May 29, 2003 | Wang et al. |
20030215137 | November 20, 2003 | Wnek |
20040179734 | September 16, 2004 | Okubo |
20040240737 | December 2, 2004 | Lim et al. |
20050041121 | February 24, 2005 | Steinberg et al. |
20050123199 | June 9, 2005 | Mayzlin et al. |
20050238252 | October 27, 2005 | Prakash et al. |
20060039605 | February 23, 2006 | Koga |
20060215231 | September 28, 2006 | Borrey et al. |
20060291692 | December 28, 2006 | Nakao et al. |
20070110322 | May 17, 2007 | Yuille et al. |
20070116360 | May 24, 2007 | Jung et al. |
20070217676 | September 20, 2007 | Grauman et al. |
20080008386 | January 10, 2008 | Anisimovich et al. |
20080063273 | March 13, 2008 | Shimodaira |
20080112614 | May 15, 2008 | Fluck et al. |
20090060335 | March 5, 2009 | Rodriguez Serrano et al. |
20090202152 | August 13, 2009 | Takebe et al. |
20090232358 | September 17, 2009 | Cross |
20090252437 | October 8, 2009 | Li et al. |
20090316991 | December 24, 2009 | Geva et al. |
20090317003 | December 24, 2009 | Heilper et al. |
20100049711 | February 25, 2010 | Singh et al. |
20100067826 | March 18, 2010 | Honsinger et al. |
20100080462 | April 1, 2010 | Miljanic et al. |
20100128131 | May 27, 2010 | Tenchio et al. |
20100141788 | June 10, 2010 | Hwang et al. |
20100144291 | June 10, 2010 | Stylianou et al. |
20100172575 | July 8, 2010 | Lukac et al. |
20100195933 | August 5, 2010 | Nafarieh |
20100232697 | September 16, 2010 | Mishima et al. |
20100239123 | September 23, 2010 | Funayama et al. |
20100245870 | September 30, 2010 | Shibata |
20100272361 | October 28, 2010 | Khorsheed et al. |
20100296729 | November 25, 2010 | Mossakowski |
20110052094 | March 3, 2011 | Gao et al. |
20110081083 | April 7, 2011 | Lee et al. |
20110188756 | August 4, 2011 | Lee et al. |
20110215147 | September 8, 2011 | Goncalves et al. |
20110222768 | September 15, 2011 | Galic et al. |
20110249897 | October 13, 2011 | Chaki et al. |
20110274354 | November 10, 2011 | Nijemcevic |
20110280484 | November 17, 2011 | Ma et al. |
20110285873 | November 24, 2011 | Showering et al. |
20120051642 | March 1, 2012 | Berrani et al. |
20120066213 | March 15, 2012 | Ohguro |
20120092329 | April 19, 2012 | Koo et al. |
20120114245 | May 10, 2012 | Lakshmanan et al. |
20120155754 | June 21, 2012 | Chen et al. |
20130001295 | January 3, 2013 | Goncalves |
20130058575 | March 7, 2013 | Koo et al. |
20130129216 | May 23, 2013 | Tsai et al. |
20130194448 | August 1, 2013 | Baheti et al. |
20130195315 | August 1, 2013 | Baheti et al. |
20130195360 | August 1, 2013 | Krishna Kumar et al. |
20130308860 | November 21, 2013 | Mainali et al. |
20140003709 | January 2, 2014 | Ranganathan et al. |
20140023270 | January 23, 2014 | Baheti et al. |
20140023271 | January 23, 2014 | Baheti et al. |
20140023273 | January 23, 2014 | Bahetti et al. |
20140023274 | January 23, 2014 | Barman et al. |
20140023275 | January 23, 2014 | Krishna Kumar et al. |
20140168478 | June 19, 2014 | Baheti et al. |
1146478 | October 2001 | EP |
1840798 | October 2007 | EP |
2192527 | June 2010 | EP |
2453366 | April 2009 | GB |
2468589 | September 2010 | GB |
2004077358 | September 2004 | WO |
- Dalai, Navneet, and Bill Triggs. “Histograms of oriented gradients for human detection.” Computer Vision and Pattern Recognition, 2005. CVPR 2005. IEEE Computer Society Conference on. vol. 1. IEEE, 2005.
- Lowe, David G. “Distinctive image features from scale-invariant keypoints.” International journal of computer vision 60.2 (2004): 91-110.
- Newell, Andrew J., and Lewis D. Griffin. “Multiscale histogram of oriented gradient descriptors for robust character recognition.” Document Analysis and Recognition (ICDAR), 2011 International Conference on. IEEE, 2011.
- 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.
- Setlur, S. 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.
- Chaudhuri, B.B. et al. “Skew Angle Detection of Digitized Indian Script Documents”, IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 19, No. 2, Feb. 1997, pp. 182-186.
- Chen, X. et al. “Detecting and Reading Text in Natural Scenes,” IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVRP'04), 2004, pp. 1-8.
- Epshtein, B. et al. “Detecting text in natural scenes with stroke width transform,” Computer Vision and Pattern Recognition (CVPR) 2010, pp. 1-8, (as downloaded from “http://research.microsoft.com/pubs/149305/1509.pdf”).
- Jain, A. K. et al. “Automatic text location in images and video frames”, Pattern Recognition, vol. 31, No. 12, 1998, pp. 2055-2076.
- Jayadevan, R. 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, R. et al. “Skew angle detection of a cursive handwritten Devanagari script character image”, Indian Institute of Science, May-Aug. 2002, pp. 161-175.
- Lee, S-W. et al. “A new methodology for gray-scale character segmentation and recognition,” IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 18, No. 10, Oct. 1996, pp. 1045-1050.
- Li, H. et al. “Automatic Text Detection and Tracking in a Digital Video”, IEEE Transactions on Image Processing, vol. 9 No. 1, Jan. 2000, pp. 147-156.
- Matas, et al. “Robust Wide Baseline Stereo from Maximally Stable Extremal Regions”, Proc. of British Machine Vision Conference, 2002, pp. 384-393.
- Mikulik, et al. “Construction of Precise Local Affine Frames,” Center for Machine Perception, Czech Technical University in Prague, Czech Republic, 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.
- Pal, U. et al. “Indian script character recognition: a survey”, Pattern Recognition Society, published by Elsevier Ltd, 2004, pp. 1887-1899.
- “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, M. 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.
- 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, 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.
- Machine Learning, retrieved from http://en.wikipedia.org/wiki/Machine—learning, May 7, 2012, pp. 1-8.
- 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.
- 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).
- Park, J-M. et al. “Fast Connected Component Labeling Algorithm Using a Divide and Conquer Technique,” believed to be published in Matrix (2000), vol. 4 (1), pp. 4-7, Publisher: Elsevier Ltd.
- Renold, M. “Detecting and Reading Text in Natural Scenes,” Master's Thesis, May 2008, pp. 1-59.
- Shin, H. et al. “Application of Floyd-Warshall Labelling Technique: Identification of Connected Pixel Components in Binary Image,” Kangweon-Kyungki Math. Jour. 14(2006), No. 1, pp. 47-55.
- 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.
- 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.
- Co-pending U.S. Appl. No. 13/748,562, filed on Jan. 23, 2013, (47 pages).
- Co-pending U.S. Appl. No. 13/831,237, filed on Mar. 14, 2013, (34 pages).
- Co-pending U.S. Appl. No. 13/842,985, filed on Mar. 15, 2013, (53 pages).
- 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, XP05568675, DOI: 10.1109/ICDAR.2011.28 ISBN: 978-1-45-771350-7.
- 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.
- “Histogram of oriented gradients,” Wikipedia, retrieved from http://en.wikipedia.org/wiki/Histogram—of—oriented—gradients on Apr. 30, 2015, 7 pages.
- “Connected-component labeling,” Wikipedia, retrieved from http://en.wikipedia.org/wiki/Connected-component—labeling on May 14, 2012, 7 pages.
- Lowe, D.G., “Distinctive Image Features from Scale-Invariant Keypoints,” accepted for publication in the International Journal of Computer Vision, 2004, Jan. 5, 2004, 28 pages.
- 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, Retrieved from the Internet: URL:http://researchweb.iiit.ac.inj-jinesh/ocrDesignDoc.pdf [retrieved on Sep. 5, 2013].
- 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.
- Forsesen P.E., et al., “Shape Descriptor for Maximally Stable Extremal Regions”, Computer Vision, 2007. ICCV 2007. IEEE 11th International Conference on, IEEE, Pl, 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-049379—ISA/EPO—Oct. 17, 2013.
- Minoru M., Ed., “Character Recognition”, Aug. 2010, Sciyo, XP002715748, ISBN: 978-953-307-105-3 pp. 91-95, p. 92, section “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 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. 1, 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 21st 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.
- Uchida S et al., “Skew Estimation by Instances”, 2008 The Eigth 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 Textue 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.
Type: Grant
Filed: Mar 7, 2013
Date of Patent: Sep 22, 2015
Patent Publication Number: 20140023278
Assignee: QUALCOMM Incorporated (San Diego, CA)
Inventors: Raj Kumar Krishna Kumar (Bangalore), Pawan Kumar Baheti (Bangalore), Dhananjay Ashok Gore (Bangalore)
Primary Examiner: Chan Park
Assistant Examiner: Geoffrey E Summers
Application Number: 13/789,549
International Classification: G06K 9/46 (20060101);