The present disclosure relates to text region detection. More specifically, the present disclosure relates to text region detection systems and methods for verifying whether a potential text region in an image is a true text region.
Modern imaging devices such as cameras, camcorders, scanners, and mobile phones are often equipped with image sensors for capturing images. Such imaging devices with image sensors are commonly used to capture images with text. For example, users of mobile phones often take pictures of images with text such as books, menus, advertisements, street signs, billboard signs, news articles, etc. Text information from captured images is then obtained by text detection and recognition methods. The text information thus obtained may be used to identify the images for storage or retrieval.
In recognizing text information, it is generally necessary to first detect a potential text region and determine whether the potential text region contains text. If the text region contains text, the text is then recognized by a text recognition method (e.g., OCR). On the other hand, if the text region does not contain text, the potential text region is discarded.
Unfortunately, conventional text detection methods often erroneously recognize potential text regions, which do not contain text, as text regions containing valid text. Such cases of erroneous detection increases particularly when images include complex non-text backgrounds or patterns. However, even in such cases, text recognition methods are generally applied to the falsely detected text regions, thereby producing unrecognizable results while consuming computing resources.
Therefore, there is a need to reduce erroneous detections of text regions to facilitate more accurate text recognition and save computing resources.
According to one aspect of the present disclosure, a method for detecting a text region in an image is disclosed. The method includes detecting a candidate text region from an input image. A set of oriented gradient images is generated from the candidate text region, and one or more detection window images of the candidate text region are captured. A sum of oriented gradients is then calculated for a region in one of the oriented gradient images. It is classified whether each detection window image contains text by comparing the associated sum of oriented gradients and a threshold. Based on the classifications of the detection window images, it is determined whether the candidate text region is a true text region. This disclosure also describes an apparatus, a combination of means, and a computer-readable storage medium relating to this method.
According to another aspect of the present disclosure, a method for detecting a text region in an image is disclosed. The method includes i) detecting a candidate text region from an input image, ii) generating a set of oriented gradient images of the candidate text region, iii) capturing one or more detection window images from the candidate text region, iv) calculating a sum of oriented gradients from a region in an oriented gradient image obtained from each detection window image, v) classifying whether each detection window image contains text by comparing the sum of oriented gradients and a threshold, and vi) determining whether each detection window image contains text based on each classification. If each detection window image is determined to contain text, the operations iv) to vi) above is repeated to determine whether the candidate text region is a true text region. This disclosure also describes an apparatus, a combination of means, and a computer-readable storage medium relating to this method.
According to yet another aspect of the present disclosure, a method for providing one or more classifiers for classifying an image into a text region is disclosed. The method includes providing a plurality of oriented gradient images generated from learning sample images. In this method, one or more oriented gradient images are generated from each learning sample image including a tag indicating whether the learning sample image is a text image or non-text image. A plurality of candidate weak classifiers is then generated. Each of the candidate weak classifiers includes parameters defining a region and a direction of an oriented gradient image and is configured to classify each learning sample image based on a sum of oriented gradients calculated for the defined region and direction. It is then verified whether each candidate weak classifier correctly classifies each learning sample image based on the tag, and an error rate for each candidate weak classifier is determined. One or more weak classifiers are selected from the candidate weak classifiers based on the error rate of each candidate weak classifier. This disclosure also describes an apparatus, a combination of means, and a computer-readable storage medium relating to this method.
According to still another aspect of the present disclosure, an apparatus for detecting a text region in an image is disclosed. The apparatus includes a candidate text region detector configured to receive an input image and detect a candidate text region from the input image. Further, a gradient image generator is provided to receive the candidate text region from the candidate region detector and generate a set of oriented gradient images of the candidate text region. A detection window locator then captures one or more detection window images of the candidate text region. The apparatus further includes a plurality of classifiers arranged in series, each classifier being configured to classify whether each detection window image contains text based on a plurality of sums of oriented gradients when the classification from the previous classifier in the series indicates that the detection window image contains text. In this configuration, each of the sums of oriented gradients is calculated for a region in one of the oriented gradient images. Based on the classifications of the detection window images, a first determination unit of the apparatus is configured to determine whether the candidate text region is a true text region.
Various embodiments are now described with reference to the drawings, wherein like reference numerals are used to refer to like elements throughout. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of one or more embodiments. It may be evident, however, that such embodiment(s) may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to facilitate describing one or more embodiments.
The candidate text region detector 140 is configured to detect one or more candidate text regions from the input image based on well-known geometric primitives such as blobs and edges in the input image. In some embodiments, a Canny edge detection method is used to detect edges from the input image, and character components (e.g., text characters) are detected based on the detected geometric primitives according to well-known algorithms such as Flood-fill algorithm. The candidate text region detector 140 localizes a minimum rectangle for each character component in a character component box.
The candidate text region detector 140 then merges one or more of the adjacent character component boxes into a candidate text region. In merging character component boxes, a distance among the character component boxes may be measured and horizontally adjacent character component boxes may be merged to font) a candidate text region. Alternatively or additionally, character component boxes that are similar in size and color may be merged into a candidate text region.
Merging of the character component boxes may result in a skewed rectangle for the candidate text region. In some embodiments, the candidate text region detector 140 is configured to geometrically rectify a skewed candidate text region into a rectangular candidate text region. For example, an affine transformation method may be used to transform the skewed candidate text region into a rectangle.
In some embodiments, the candidate text region detector 140 may be further configured to resize the rectified candidate text region according to a desired detection window size. For example, if the candidate text region has a width longer than a height, the candidate text region can be resized to a predetermined height (e.g., 20 pixels) of the desired detection window. Conversely, if the candidate text region has a height longer than a width, the candidate text region can be resized to a predetermined width (e.g., 20 pixels) of the desired detection window.
The verification unit 160 is configured to receive the candidate text region from the candidate text region detector 140 and verify whether the candidate text region is a true text region. In verifying the candidate text region, one or more detection window images are captured from the candidate text region, and a plurality of sums of oriented gradients is calculated for regions in the detection window images. The verification of the candidate text region is made based on classifications of whether the detection window images contain text.
The text region detection system 100 may be implemented in any suitable imaging devices including computer systems and electronic portable devices equipped with image sensors such as mobile phones, tablet computers, etc. In some embodiments, the text region detection system 100 may be operational in any type of network, as well as any combination of networks, including cellular networks, circuit switching networks, public switching networks, local area networks, wide area networks, wireless networks, and/or packet switching networks, etc.
The detection window locator 304 is configured to receive the rectified candidate text region and slide a detection window of a predetermined size over the candidate text region. As the detection window is slid over the candidate text region, portions of the candidate text region corresponding to the size and location of detection window are captured as a sequence of detection window images. In this process, the portions of the candidate text region captured as the detection window images may or may not overlap in some parts.
The SOG classifier 306 is configured to receive at least one of the gradient images from the gradient image generator 302 and the locations of the sequence of detection window images from the detection window locator 304 corresponding to the candidate text region. The SOG classifier 306 calculates a plurality of sums of oriented gradients for predetermined regions in each of the detection window images based on the received gradient image. Based on the sums of oriented gradients, the SOG classifier 306 classifies whether each detection window image contains text.
The SOG determination unit 308 is configured to determine whether the candidate text region is a true text region based on the classification results of the detection window images from the SOG classifier 306. The SOG determination unit 308 may be configured with a threshold value for determining a candidate text region as a true text region. For example, if the number of detection window images classified as containing text is more than the threshold value, the candidate text region is determined to be a true text region.
For calculating a gradient of a pixel (x, y) in the horizontal direction, the gradient image generator 302 may apply, for example, a horizontal mask 422 represented by [−1, 0, 1] to three adjacent pixels (x−1, y), (x, y) and (x+1, y) arranged in a horizontal direction to calculate a horizontal gradient Hx
H
x
y=(−1×Ix−1
where Ix−1
V
x
y=(−1×Ix
where Ix
Based on the horizontal and vertical gradients, the gradient image generator 302 generates a gradient vector for each pixel, including a horizontal gradient component and a vertical gradient component. For example, the gradient vector {right arrow over (G)}x
{right arrow over (G)}
x
y
=H
x
y
·{circumflex over (x)}+V
x
·ŷ [3]
where {circumflex over (x)} and ŷ refer to a horizontal and a vertical unit vectors, respectively, while Hx
As the interval of moving the detection window 540 increases (e.g., more than 4 pixels), fewer detection window images are generated from the candidate text region 280, thereby reducing the computational load of the text detection system. On the other hand, as the interval of moving the detection window 540 decreases (e.g., less than 4 pixels), more detection window images are generated from the candidate text region 280, thereby improving the accuracy of text detection. Although
In the SOG classifier 306, each weak classifier 620 to 624 is configured with a predetermined orientation, a predetermined region in a detection window image, and a threshold. Each of the weak classifiers 620 to 624 is configured to obtain a portion of an oriented gradient image corresponding to its predetermined orientation, where the portion corresponds to the detection window image in size and location. Each classifier 620 to 624 calculates a sum of oriented gradients for its predetermined region in the portion of the oriented gradient image, and classifies whether the detection window image contains text based on the sum of oriented gradients. The detection window image may be further classified in each weak classifier 620 to 624 as containing text if the sum of oriented gradients exceeds the threshold. Each classifier 620 to 624 outputs a True or False (T/F) value as a classification result indicating that the detection window image contains text or not, respectively.
In some embodiments, the classification result in each weak classifier 620 to 624 may be further processed according to a polarity indicating whether to change the classification result from one state to the other. In the case of a positive polarity value (e.g., “+1”), a True or False classification result will be output as it is without change in the classification result. As a result, the detection window image is classified as containing text when the calculated sum of oriented gradients exceeds the threshold. In the case of a negative polarity value (e.g., “−1”), a True or False classification result will be changed to the opposite classification result for output. Accordingly, the detection window image will be classified as containing text when the calculated sum of oriented gradients does not exceeds the threshold.
The SOG classifier 306 further includes a determinator 640 configured to determine whether the detection window image contains text based on the classification results (T/F) of the detection window image by the weak classifiers 620 to 624. The determinator 640 is further configured to combine the classification results of the detection window image by the weak classifiers 620 to 624. For example, the combination of the classification results may be a sum of the numbers of a classification category (e.g., T or F) of the detection window image by the weak classifiers 620 to 624. The determinator 640 may also be configured with a threshold for the sum of the numbers of the classification category. If the sum of the numbers of classification category is greater than the threshold, the detection window image is determined to contain text, and a True value (T) is output to the SOG determination unit 308. Otherwise, the detection window image is determined not to contain text and a False value (F) is output to the SOG determination unit 308.
In another embodiment, each weak classifier 620 to 624 is configured to output a value “1” when a detection window image is classified as containing text, or a value “0” when a detection window image is classified as not containing text. Further, each weak classifier 620 to 624 may be configured with a weak classifier weight αw which is applied to the output value. The assigned weak classifier weight αw may be determined according to an accuracy or error rate in classifying sample images, which will be described in more detail below. Based on such determination, the output value of each classifier 620 to 624 is weighted by multiplying the corresponding weak classifier weight αw. Weighting the output of each classifier according to its accuracy or error rate allows greater weights to be given to more accurate classifiers and less weights to be given to less accurate classifiers. In the case of using weighted output values, the determinator 640 determines whether the detection window image contains text based on the sum of the weighted output values from the weak classifiers 620 to 624.
According to some embodiments, weak classifiers may be generated based on a set of learning sample images known to contain text and another set of learning sample images known not to contain text.
Each rectangular sample image includes a tag indicating whether the sample image is a positive sample image containing text or a negative sample image not containing text. For example, a tag indicating a positive sample image may be “1” while a tag indicating a negative sample image may be “0.” The tags are used to verify whether candidate weak classifiers correctly classify the learning sample images as discussed in more detail below.
where m is the number of the negative sample images, and an initial weight of the positive sample images is
where l is the number of the positive sample images. The initial weight wi of an i-th learning sample image is then normalized as follows:
where n refers to the number of the learning sample images.
After receiving the learning sample images, a set of oriented gradient images for each learning sample image is generated at 1104. The oriented gradient images may be generated for the learning sample images in the same manner as described above with reference to
Once the oriented gradient images have been generated, candidate weak classifiers are generated based on the learning sample images at 1106. The candidate weak classifiers refer to weak classifiers configured with all possible combinations of all predetermined orientations and regions in the oriented gradient images. Each candidate weak classifier is further configured with a threshold and a parameter which are optimized for the classification based on its predetermined orientation and region, which will be described in detail below. In this context, the predetermined orientations may be the four orientations, Orientations 0 to 3, as described above with reference to
For example, when the size of the learning sample images is 20 by 20 pixels, there is a total of 44,100 regions for each oriented gradient image. Thus, the total number of the candidate weak classifiers generated equals the number of all possible combinations of all orientation parameters and all region parameters. In this case, the number of candidate weak classifiers is as follows:
N
candidate
w
=N
o
×N
R [6]
where No refers to the number of orientations. Given four orientations and 44,100 regions, a total of 176,400 candidate weak classifiers is generated. As described above, the total number of candidate weak classifiers may vary depending on the size of the learning sample images and the number of orientations.
After generating the candidate weak classifiers, it is verified whether each candidate weak classifier correctly classifies each learning sample image based on the sample image's tag at 1108. The verification result may be calculated as follows:
v
—
i=|C
w
i
−y
i| [7]
where Cw
Based on the verification results, an error rate for each candidate weak classifier is computed at 1110. For example, an error rate εw of a candidate weak classifier may be computed as follows:
where i is an index of the learning sample images, v_i refers to a verification result for the i-th learning sample image by the candidate weak classifier, and wi is a weight of the i-th learning sample image. In this manner, the error rates are computed for all candidate weak classifiers.
Once the error rates have been obtained for the candidate weak classifiers, a weak classifier to be included in the SOG classifier 306 is selected from the candidate weak classifiers based on the error rates at 1112. In one embodiment, a candidate weak classifier with the lowest error rate may be selected as the weak classifier. In some embodiments, the selected candidate weak classifier may be added to a set of weak classifiers to be included in the SOG classifier.
The selected weak classifier may be assigned a weak classifier weight αw, which may be determined based on the error rate calculated at 1110. For example, the weak classifier weight αw may be calculated as follows:
where εw refers to an error rate of the selected weak classifier calculated at 1110.
After selecting the weak classifier, it is determined whether the weak classifier generation process is to be terminated based on a termination condition at 1114. For example, the process can be terminated when a predetermined number of weak classifiers have been selected from the candidate weak classifiers. In other embodiments, the process may be also terminated when a set of weak classifiers has been selected to ensure a specified upper limit error rate or a specified lower limit accuracy rate. For example, the termination condition may define a lower limit accuracy rate (e.g., 99%) of correctly classified positive sample images and/or a lower limit accuracy rate (e.g., 50%) of correctly classified negative sample images. In this case, an error rate or an accuracy rate is calculated for the SOG classifier including the weak classifiers selected thus far.
If the termination condition is not met at 1114, the method proceeds to 1116 where the weights of the learning sample images are adjusted based on the verification results of the selected weak classifier. In this process, the weights of learning sample images that are correctly classified by the selected candidate weak classifier are decreased relative to the weights of learning sample images that are not correctly classified by the selected candidate weak classifier. For example, a weight wi of an i-th learning sample image may be adjusted to a weight wi′ as follows:
w
i
′←w
iβ1-e [11]
where e is set to a “0” if the i-th learning sample image is correctly classified, and e is set to a “1” if the i-th learning sample image is not correctly classified. β is calculated according to Expression [10]. The error rate calculated at 1110 may be used for the error rate εw in Expression [10]. According to Expression [11], the weights of the incorrectly classified learning sample images are maintained while the weights of the correctly classified learning sample images are reduced. In some embodiments, the adjusted weights may be normalized according to Expression [4] described above. After adjusting the weights at 1116, the method proceeds back to 1108 to verify whether each candidate weak classifier correctly classifies each learning sample image with the adjusted weights. If the termination condition is met at 1114, the selected set of weak classifiers is output to be included in the SOG classifier 306 at 1118.
For the new threshold, it is verified whether the selected candidate weak classifier correctly classifies each learning sample image at 1206. In this process, the selected candidate weak classifier classifies the learning sample images by comparing the sums of oriented gradients calculated from the learning sample images with the new threshold. In some embodiments, based on the initial polarity (e.g., “+1”), the selected candidate weak classifier classifies the learning sample images as containing text if the sum of oriented gradients exceeds the threshold, and classifies the learning sample images as not containing text if the sum of oriented gradients does not exceed the threshold. Then, the initial polarity is switched to the other polarity (e.g., “−1”), and the selected candidate weak classifier classifies the learning sample images as containing text if the sum of oriented gradients does not exceed the threshold, and classifies the learning sample images as not containing text if the sum of oriented gradients exceeds the threshold. Further, the classifications of learning sample images are compared with the tags of the corresponding learning sample images to verify whether the classifications are correct. In some embodiments, the classification results may be a “1” to indicate a text image, and a “0” to indicate a non-text image. The verification results v_i may be calculated from the classification results using Equation [7].
Once the learning sample images have been classified, error rates of the selected candidate weak classifier with the new threshold for the two polarities are computed based on the verification results v_i at 1208. For example, the error rate εw
where i refers to an index for the learning sample images.
After determining the error rates for the threshold, it is determined whether another threshold is selectable from the candidate thresholds at 1210. That is, it is determined whether the error rates have been calculated for all candidate thresholds. If not, the method proceeds back to 1204 where the old threshold is replaced with a new candidate threshold. On the other hand, if no further threshold is selectable (i.e., the error rates have been calculated for all candidate thresholds), the candidate threshold and the polarity with the lowest error rate are assigned as the threshold and polarity for the selected candidate weak classifier at 1212.
In some embodiments, the weak classifier generation process as described above may also be implemented by suitably adapting an AdaBoost algorithm.
After verifying whether the first SOG classifier 306a correctly classifies the learning sample images, it is determined whether an error rate or the number of SOG classifiers selected so far to be included in the cascade SOG classifier 306 is met at 1308. If both conditions are not met at 1308, the method proceeds to 1310 where the learning sample images classified as containing text at 1306 are provided to generate a next SOG classifier 306b at 1304. If either condition is met at 1308, the cascade SOG classifier generation is terminated.
As described above, the weak classifier generation is performed on different sets of learning samples for different SOG classifiers included in the cascade SOG classifier 306. That is, the weak classifiers for a SOG classifier are generated based on only the learning sample images that are classified as a text image at the preceding SOG classifier. Accordingly, different weak classifiers are generated for different SOG classifiers in the cascade SOG classifier 306. In some embodiments, generating weak classifiers for the cascade SOG classifier 306 may be carried out by training each SOG classifier in the cascade SOG classifier 306 according to a boosting algorithm.
The gradient image generator 302 of the verification unit 160 generates one or more gradient images of the candidate text region according to one or more predetermined orientations and provides the oriented gradient images to the SOG classifier 306 at 1406. For example, the gradient image generator 302 may generate four oriented gradient images according to four orientations, Orientation 0 to 3.
The detection window locator 304 captures a detection window image from the candidate text region at 1408 at the beginning of the candidate text region. At 1410, the SOG classifier 306 determines whether the detection window image contains text. Then, the detection window locator 304 determines whether the detection window 540 has reached the end of the candidate text region at 1412. If the detection window 540 has not reached the end of the candidate text region, the method proceeds to 1414 where the detection window locator 304 moves the detection window 540 by a predetermined interval so that a new detection window image is captured at 1408.
If the detection window 540 has reached the end of the candidate text region at 1412, the method proceeds to 1416, where the SOG determination unit 308 determines whether the candidate text region is a true text region based on the determinations of the detection window images by the SOG classifier 306. The SOG determination unit 308 may determine the candidate text region as a true text region when a certain number of detection window images are determined as containing text by the SOG classifier 306.
Each weak classifier 620 to 624 then classifies whether the detection window image contains text at 1506 by comparing the calculated sum of oriented gradients with the threshold. When the associated polarity is “+1,” the detection window image is classified as containing text if the sum of oriented gradients exceeds the threshold, and classified as not containing text if the sum of oriented gradients does not exceed the threshold. On the other hand, when the polarity is “−1,” the detection window image is classified as containing text if the sum of oriented gradients does not exceed the threshold, and classified as not containing text if the sum of oriented gradients exceeds the threshold. The determinator 640 determines whether the detection window image contains text based on the classification results of the weak classifiers 620 to 624 at 1508.
If the detection window image is determined to contain text by the first SOG classifier 306a at 1608, the method proceeds to 1610 where it is further determined whether there is a next SOG classifier in the cascade of SOG classifiers 306. If there is a next SOG classifier, the method proceeds to the next SOG classifier at 1612 and receive portions of the oriented gradient images for the next SOG classifier at 1602. Thus, when the detection window image is determined as containing text without further SOG classifiers, the SOG classifier 306 outputs a True value to indicate that the detection window image contains text at 1614. If the detection window image is determined not to contain text by any one of the SOG classifiers in the cascade of SOG classifiers at 1608, the SOG classifier 306 outputs a False value to indicate that the detection window image does not contain text at 1616.
The verification unit 160 includes a binary conversion unit 1702 and a binary image classifier 1704. The binary conversion unit 1702 is configured to convert the candidate text region into a binary image. For example, the binary conversion unit 1702 initially estimates a color in each pixel of the candidate text region based on a blob color in the candidate text region. A connected component is then extracted from the candidate text region to estimate an average color of the connected component as a text color. Further, an average background color is estimated based on an average color of the entire candidate text region.
The binary conversion unit 1702 then converts the candidate text region into the binary image based on the color distance between the estimated average text color and the estimated average background color. In some embodiments, the binary conversion unit 1702 may compare the color of each pixel with both the average text color and the average background color to determine whether the color of each pixel is closer to the average text color or closer to the average background color. When the color of each pixel is closer to the average background color, the corresponding pixel may be assigned a binary value (e.g., “0”) corresponding to the background. On the other hand, when the color of each pixel is closer to the average text color, the corresponding pixel may be assigned a binary value (e.g., “1”) corresponding to text. Thus, the binary conversion unit 1702 generates the binary image including pixels with the binary values corresponding to text or background.
The binary image classifier 1704 is configured to split the binary image into a plurality of blocks and verify whether the candidate text region is a true text region based on one or more features calculated from the blocks. The features include at least one of the number of white pixels C(w), the number of black pixels C(b), the number of white pixel to black pixel transitions C(w_b), and the number of black pixel to white pixel transitions C(b_w). In determining the number of pixel transitions C(w_b) or C(b_w), the pixel transitions are counted in specified directions such as from left to right and from top to bottom.
The binary image classifier 1704 uses a binary feature-based classifier function F({right arrow over (f)}bin), which has an input feature vector {right arrow over (f)}bin representing the above features as components, to calculate a likelihood that the binary image block contains text. The binary feature-based classifier function F({right arrow over (f)}bin) receives the feature vector {right arrow over (f)}bin calculated for a block of the binary image and outputs a value in a range between “1” and “0.” Within this range, the value “1” indicates that the block of the binary image contains text, while the value “0” indicates that the block of the binary mage does not contain text. As such, the output value indicates a likelihood that the block of the binary image contains text. Specifically, an output value closer to “1” indicates that the block of the binary image is more likely to contain text, while an output value closer to “0” indicates that the block of the binary image is more likely not to contain text. For each block in the binary image, the binary feature-based classifier function F({right arrow over (f)}bin) generates a value indicating a likelihood that the binary image block contains text.
Once the likelihood values have been calculated for the blocks in the binary image, the binary image classifier 1704 calculates an average sum of the likelihood values and determines whether the candidate text region is a true text region based the average sum of the values. For example, the average sum may be determined according to the following expression:
where F({right arrow over (f)}bin
In one embodiment, the binary feature-based classifier function F({right arrow over (f)}bin
In some embodiments, the features C(w), C(b), C(w_b), and C(b_w) may be calculated from all sub-blocks of a binary image block. For example, if the binary image block is divided into eight sub-blocks including four horizontal sub-blocks 1902 to 1908 and four horizontal sub-blocks 1922 to 1928 as shown in
Alternatively, at least one of the features C(w), C(b), C(w_b), and C(b_w) may be calculated from at least some of the sub-blocks of the binary image block. For example, the features C(w), C(b), C(w_b), and C(b_w) may be calculated from the sub-blocks 1906, 1908, 1922, and 1928. In this case, the features of the binary image block may be represented by a feature vector {right arrow over (f)}bin having 16 dimensions. In some embodiments, features calculated from the sub-blocks may be different. For example, the features C(w) and C(b) are calculated from the sub-blocks 1906 and 1908, respectively, while the features C(w_b) and C(b_w) are calculated from the sub-blocks 1922 and 1928, respectively. In this case, the features of the binary image block may be represented by a feature vector {right arrow over (f)}bin having 4 dimensions.
The binary image classifier 1704 then calculates the features for the sub-blocks of each of the binary image blocks at 2108. The features may include at least one of the number of white pixels C(w), the number of black pixels C(b), the number of white pixel to black pixel transitions C(w_b), and the number of black pixel to white pixel transitions C(b_w) in each sub-block.
Based on the calculated features for each binary image block, the binary image classifier 1704 calculates a likelihood that the binary image block contains text at 2110. In this process, the binary image classifier 1704 calculates a likelihood that each binary image block contains text based on the features calculated for the sub-blocks of the binary image block. Given an input feature vector {right arrow over (f)}bin including the features calculated for the sub-blocks of the binary image block, the binary feature-based classifier function F({right arrow over (f)}bin) outputs a likelihood value in a range between “1” and “0” as described above.
The binary image classifier 1704 then determines whether the candidate text region is a true text region based on the likelihood values for the binary image blocks at 2112. In this determination process, the binary image classifier 1704 averages the likelihood values from the binary feature-based classifier function F({right arrow over (f)}bin) and determines the candidate text region as a text region if the average value exceeds a predetermined threshold value.
The mass storage device 2206 initially stores programs and data for various methods and embodiments described herein such as text region detection algorithms and weak classifier generation algorithms that are configured to perform the functions as described above. The mass storage device 2206 stores the programs and data in the form of computer storage media, which may include volatile and nonvolatile, removable and non-removable media implemented in any suitable method or technology for storage of information, such as computer readable instructions, data structures, program modules, or other data. Examples of removable storage and non-removable storage devices include magnetic disk devices such as hard-disk drives (HDD), optical disk drives such as compact disk (CD) drives or digital versatile disk (DVD) drives, blu-ray drives, and solid state drives (SSD).
The programs and data from the mass storage device 2206 are loaded into the memory 2204 via the system bus 2214 and processed by the processor 2202. During and after processing the programs and data, the processor 2202 may generate new data or modify existing data for storage in the memory 2204 and/or the mass storage device 2206. Depending on the desired configuration, the memory 2204 may be any suitable type of memory including but not limited to volatile memory (such as RAM), non-volatile memory (such as ROM, flash memory, etc.) or any combination thereof.
The I/O peripheral interface 2212 provides interface to various input and output peripheral devices such as a keyboard, mouse, pen, touch input device, image capturing device (e.g., camera, video camera, scanner, etc.), printer, etc. The network interface 2210 provides interface functions with external wireless or wired networks such as the Internet, local area network, wide area network, intranet, Bluetooth, and NFC (Near Field Communication). The computer system 2200 provides output information on the display 2208 via the system bus 2214.
The computer system 2200 may be implemented as a portion of a small-form factor portable (or mobile) electronic device such as a cellular phone, a smartphone, a personal data assistant (PDA), a personal media player device, a wireless web-watch device, a personal headset device, an application specific device, or a hybrid device that include any of the above functions. The computer system 2200 may also be implemented as a personal computer including both laptop computer and non-laptop computer configurations.
In general, any device described herein may represent various types of devices, such as a wireless phone, a cellular phone, a laptop computer, a wireless multimedia device, a wireless communication personal computer (PC) card, a PDA, an external or internal modem, a device that communicates through a wireless channel, etc. A device may have various names, such as access terminal (AT), access unit, subscriber unit, mobile station, mobile device, mobile unit, mobile phone, mobile, remote station, remote terminal, remote unit, user device, user equipment, handheld device, etc. Any device described herein may have a memory for storing instructions and data, as well as hardware, software, firmware, or combinations thereof.
The techniques described herein may be implemented by various means. For example, these techniques may be implemented in hardware, firmware, software, or a combination thereof. Those of ordinary skill in the art would further appreciate that the various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the disclosure herein may be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present disclosure.
For a hardware implementation, the processing units used to perform the techniques may be implemented within one or more ASICs, DSPs, digital signal processing devices (DSPDs), programmable logic devices (PLDs), field programmable gate arrays (FPGAs), processors, controllers, micro-controllers, microprocessors, electronic devices, other electronic units designed to perform the functions described herein, a computer, or a combination thereof.
Thus, the various illustrative logical blocks, modules, and circuits described in connection with the disclosure herein may be implemented or performed with a general-purpose processor, a DSP, an ASIC, a FPGA or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general-purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.
For a firmware and/or software implementation, the techniques may be embodied as instructions stored on a computer-readable storage medium, such as random access memory (RAM), read-only memory (ROM), non-volatile random access memory (NVRAM), programmable read-only memory (PROM), electrically erasable PROM (EEPROM), FLASH memory, compact disc (CD), magnetic or optical data storage device, or the like. The instructions may be executable by one or more processors and may cause the processor(s) to perform certain aspects of the functionality described herein.
If implemented in software, the functions may be stored on or transmitted over as one or more instructions or code on a computer-readable storage medium. Computer-readable media includes both computer storage media and communication media including any medium that facilitates transfer of a computer program from one place to another. A storage media may be any available media that can be accessed by a computer. By way of example, and not limitation, such computer-readable media can comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to carry or store desired program code in the form of instructions or data structures and that can be accessed by a computer. Also, any connection is properly termed a computer-readable storage medium. For example, if the software is transmitted from a website, server, or other remote source using a coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave, then the coaxial cable, fiber optic cable, twisted pair, DSL, or wireless technologies such as infrared, radio, and microwave are included in the definition of medium. 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.
A software module may reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, a removable disk, a CD-ROM, or any other form of storage medium known in the art. An exemplary storage medium is coupled to the processor such that the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to the processor. The processor and the storage medium may reside in an ASIC. The ASIC may reside in a user terminal. In the alternative, the processor and the storage medium may reside as discrete components in a user terminal.
The previous description of the disclosure is provided to enable any person skilled in the art to make or use the disclosure. Various modifications to the disclosure will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other variations without departing from the spirit or scope of the disclosure. Thus, the disclosure is not intended to be limited to the examples described herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.
Although exemplary implementations may refer to utilizing aspects of the presently disclosed subject matter in the context of one or more stand-alone computer systems, the subject matter is not so limited, but rather may be implemented in connection with any computing environment, such as a network or distributed computing environment. Still further, aspects of the presently disclosed subject matter may be implemented in or across a plurality of processing chips or devices, and storage may similarly be affected across a plurality of devices. Such devices might include PCs, network servers, and handheld devices, for example.
Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.
This application is based upon and claims the benefit of priority from U.S. Provisional Patent Application No. 61/449,503, filed on Mar. 4, 2011, the entire contents of which are incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
61449503 | Mar 2011 | US |