text revoginition document

44
ROBUST TEXT DETECTION IN NATURAL SCENE IMAGES Text detection in natural scene images is an important prerequisite for many content-based image analysis tasks. In this paper, we propose an accurate and robust method for detecting texts in natural scene images. A fast and effective pruning algorithm is designed to extract Maximally Stable Extremal Regions (MSERs) as character candidates using the strategy of minimizing regularized variations. Character candidates are grouped into text candidates by the single-link clustering algorithm, where distance weights and clustering threshold are learned automatically by a novel self-training distance metric learning algorithm. The posterior probabilities of text candidates corresponding to non-text are estimated with a character classifier; text candidates with high non-text probabilities are eliminated and texts are identified with a text classifier. The proposed system is evaluated on the ICDAR 2011 Robust Reading Competition database; the f-measure is over 76%, much better than the state-of-the-art performance of 71%. Experiments on multilingual, street view, multi-orientation and even born-digital databases also demonstrate the effectiveness of the proposed method. Existing system: Texts in natural scenes carry rich semantic information, which can be used to assist a wide range of applications, such as object recognition, image/video

Upload: mohamed-ismail-majeed-m

Post on 17-Nov-2015

220 views

Category:

Documents


0 download

DESCRIPTION

text recognition

TRANSCRIPT

ROBUST TEXT DETECTION IN NATURAL SCENE IMAGES

Text detection in natural scene images is an important prerequisite for many content-based image analysis tasks. In this paper, we propose an accurate and robust method for detecting texts in natural scene images. A fast and effective pruning algorithm is designed to extract Maximally Stable Extremal Regions (MSERs) as character candidates using the strategy of minimizing regularized variations. Character candidates are grouped into text candidates by the single-link clustering algorithm, where distance weights and clustering threshold are learned automatically by a novel self-training distance metric learning algorithm. The posterior probabilities of text candidates corresponding to non-text are estimated with a character classifier; text candidates with high non-text probabilities are eliminated and texts are identified with a text classifier. The proposed system is evaluated on the ICDAR 2011 Robust Reading Competition database; the f-measure is over 76%, much better than the state-of-the-art performance of 71%. Experiments on multilingual, street view, multi-orientation and even born-digital databases also demonstrate the effectiveness of the proposed method.

Existing system:

Texts in natural scenes carry rich semantic information, which can be used to assist a wide range of applications, such as object recognition, image/video retrieval, mapping/navigation, and human computer interaction. However, most existing systems are designed to detect and recognize horizontal (or near-horizontal) texts. Due to the increasing popularity of mobile-computing devices and applications, detecting texts of varying orientations from natural images under less controlled conditions has become an important but challenging task. In this paper, we propose a new algorithm to detect texts of varying orientations. Our algorithm is based on a two-level classification scheme and two sets of features specially designed for capturing the intrinsic characteristics of texts. To better evaluate the proposed method and compare it with the competing algorithms, we generate a comprehensive dataset with various types of texts in diverse real-world scenes.

Proposed system:

A fast and effective pruning algorithm is designed to extract Maximally Stable Extremal Regions (MSERs) as character candidates using the strategy of minimizing regularized variations. Character candidates are grouped into text candidates by the single-link clustering algorithm, where distance weights and clustering threshold are learned automatically by a novel self-training distance metric learning algorithm. The posterior probabilities of text candidates corresponding to non-text are estimated with a character classifier; text candidates with high non-text probabilities are eliminated and texts are identified with a text classifier. The proposed system is evaluated on the ICDAR 2011 Robust Reading Competition database

CHAPTER IINTRODUCTION1.1 GENERAL The term digital image refers to processing of a two dimensional picture by a digital computer. In a broader context, it implies digital processing of any two dimensional data. A digital image is an array of real or complex numbers represented by a finite number of bits. An image given in the form of a transparency, slide, photograph or an X-ray is first digitized and stored as a matrix of binary digits in computer memory. This digitized image can then be processed and/or displayed on a high-resolution television monitor. For display, the image is stored in a rapid-access buffer memory, which refreshes the monitor at a rate of 25 frames per second to produce a visually continuous display.

1.1.1 THE IMAGE PROCESSING SYSTEMDigitizerMass StorageHard Copy Device

DisplayImage ProcessorDigital ComputerOperator ConsoleFIG 1.1 BLOCK DIAGRAM FOR IMAGE PROCESSING SYSTEM

DIGITIZER

A digitizer converts an image into a numerical representation suitable for input into a digital computer. Some common digitizers are1. Microdensitometer2. Flying spot scanner3. Image dissector4. Videocon camera5. Photosensitive solid- state arrays.

IMAGE PROCESSOR

An image processor does the functions of image acquisition, storage, preprocessing, segmentation, representation, recognition and interpretation and finally displays or records the resulting image. The following block diagram gives the fundamental sequence involved in an image processing system.

Problem DomainKnowledgeBaseSegmentationPreprocessingImage AcquisitionRecognition & interpretationRepresentation & DescriptionResultFIG 1.2 BLOCK DIAGRAM OF FUNDAMENTAL SEQUENCE INVOLVED IN AN IMAGE PROCESSING SYSTEM

As detailed in the diagram, the first step in the process is image acquisition by an imaging sensor in conjunction with a digitizer to digitize the image. The next step is the preprocessing step where the image is improved being fed as an input to the other processes. Preprocessing typically deals with enhancing, removing noise, isolating regions, etc. Segmentation partitions an image into its constituent parts or objects. The output of segmentation is usually raw pixel data, which consists of either the boundary of the region or the pixels in the region themselves. Representation is the process of transforming the raw pixel data into a form useful for subsequent processing by the computer. Description deals with extracting features that are basic in differentiating one class of objects from another. Recognition assigns a label to an object based on the information provided by its descriptors. Interpretation involves assigning meaning to an ensemble of recognized objects. The knowledge about a problem domain is incorporated into the knowledge base. The knowledge base guides the operation of each processing module and also controls the interaction between the modules. Not all modules need be necessarily present for a specific function. The composition of the image processing system depends on its application. The frame rate of the image processor is normally around 25 frames per second.

DIGITAL COMPUTER Mathematical processing of the digitized image such as convolution, averaging, addition, subtraction, etc. are done by the computer.

MASS STORAGE The secondary storage devices normally used are floppy disks, CD ROMs etc.

HARD COPY DEVICE The hard copy device is used to produce a permanent copy of the image and for the storage of the software involved.

OPERATOR CONSOLE The operator console consists of equipment and arrangements for verification of intermediate results and for alterations in the software as and when require. The operator is also capable of checking for any resulting errors and for the entry of requisite data.1.1.2 IMAGE PROCESSING FUNDAMENTAL Digital image processing refers processing of the image in digital form. Modern cameras may directly take the image in digital form but generally images are originated in optical form. They are captured by video cameras and digitalized. The digitalization process includes sampling, quantization. Then these images are processed by the five fundamental processes, at least any one of them, not necessarily all of them. IMAGE PROCESSING TECHNIQUES

This section gives various image processing techniques

Image Enhancement

Image Restoration

IP Image Analysis

Image Synthesis Image Compression

FIG1.3: IMAGE PROCESSING TECHNIQUES

IMAGE ENHANCEMENT Image enhancement operations improve the qualities of an image like improving the images contrast and brightness characteristics, reducing its noise content, or sharpen the details. This just enhances the image and reveals the same information in more understandable image. It does not add any information to it.

IMAGE RESTORATION Image restoration like enhancement improves the qualities of image but all the operations are mainly based on known, measured, or degradations of the original image. Image restorations are used to restore images with problems such as geometric distortion, improper focus, repetitive noise, and camera motion. It is used to correct images for known degradations.

IMAGE ANALYSIS Image analysis operations produce numerical or graphical information based on characteristics of the original image. They break into objects and then classify them. They depend on the image statistics. Common operations are extraction and description of scene and image features, automated measurements, and object classification. Image analyze are mainly used in machine vision applications.

IMAGE COMPRESSION Image compression and decompression reduce the data content necessary to describe the image. Most of the images contain lot of redundant information, compression removes all the redundancies. Because of the compression the size is reduced, so efficiently stored or transported. The compressed image is decompressed when displayed. Lossless compression preserves the exact data in the original image, but Lossy compression does not represent the original image but provide excellent compression.

IMAGE SYNTHESIS Image synthesis operations create images from other images or non-image data. Image synthesis operations generally create images that are either physically impossible or impractical to acquire.

APPLICATIONS OF DIGITAL IMAGE PROCESSING Digital image processing has a broad spectrum of applications, such as remote sensing via satellites and other spacecrafts, image transmission and storage for business applications, medical processing, radar, sonar and acoustic image processing, robotics and automated inspection of industrial parts.

MEDICAL APPLICATIONS In medical applications, one is concerned with processing of chest X-rays, cineangiograms, projection images of transaxial tomography and other medical images that occur in radiology, nuclear magnetic resonance (NMR) and ultrasonic scanning. These images may be used for patient screening and monitoring or for detection of tumors or other disease in patients.

SATELLITE IMAGING Images acquired by satellites are useful in tracking of earth resources; geographical mapping; prediction of agricultural crops, urban growth and weather; flood and fire control; and many other environmental applications. Space image applications include recognition and analysis of objects contained in image obtained from deep space-probe missions.

COMMUNICATION Image transmission and storage applications occur in broadcast television, teleconferencing, and transmission of facsimile images for office automation, communication of computer networks, closed-circuit television based security monitoring systems and in military communications.

RADAR IMAGING SYSTEMS Radar and sonar images are used for detection and recognition of various types of targets or in guidance and maneuvering of aircraft or missile systems.

DOCUMENT PROCESSING It is used in scanning, and transmission for converting paper documents to a digital image form, compressing the image, and storing it on magnetic tape. It is also used in document reading for automatically detecting and recognizing printed characteristics.

DEFENSE/INTELLIGENCE It is used in reconnaissance photo-interpretation for automatic interpretation of earth satellite imagery to look for sensitive targets or military threats and target acquisition and guidance for recognizing and tracking targets in real-time smart-bomb and missile-guidance systems.

CHAPTER 2PROJECT DESCRIPTION

2.1 GENERAL

In this paper, by incorporating several key improvements over traditional MSER based methods, we propose a novel MSER based scene text detection method, which finally leads to significant performance improvement over the other competitive methods.

BLOCK DIAGRAM:

MODULES:Character candidates extraction:TEXT candidates extraction Text candidates construction:Text candidates elimination:Text candidates classification:

Character candidates extraction:Character candidates are extracted using the MSER algorithm; most of then on-characters are reduced by the proposed MSERspruning algorithm using the strategy of minimizing corresponding experimental results after each step of a sample image. Text candidates are labelled by blue bounding rectangles; character candidates identified as characters are colored green, others red.regularized variation

Letter Candidates Extraction

The MSER algorithm is able to detect almost all characters even when the image is in low quality. However, as shown in Figure 3a, most of the detected character Candidates correspond to non-characters and should be removed before further processing. Figure 3a also shows that the detected characters forms a tree, which is quite useful for designing the pruning algorithm. In real world situations, as characters cannot be included by or include other characters, it is safe to remove children once the parent is known to be a character, and vice versa. The parent-children elimination is a safe operation because characters are preserved after the operation. By reduction, if the MSER tree is pruned by applying parent children elimination operation recursively in a depth first manner, we are still in safe place and characters are preserved. As shown in Figure 3e, the above algorithm will end up with a set of disconnected nodes containing all the characters. The problem with the above algorithm is that it is expensive to identify character. Fortunately, rather than identifying the character, the choice betweenparent and children can be made by simply choosing the one that is more likely to be characters, which can be estimated by the proposed regularized variation scheme. Considering different situations in MSER trees, we design two versions of the parent-children elimination method, namely the linear reduction and tree accumulation algorithm. Non-character regions are eliminated by the linear reduction and tree accumulation algorithm using the strategy of minimizing regularized variations. Our experiment on ICDAR 2011 competition training set shows that more than 80% of character candidates are eliminated using the proposed pruning algorithm.

3.1.2 Variation and Its Regularization

As MSERs with lower variations have sharper borders and are more likely to be characters, one possible strategy may be used by the parent-children elimination operation is to select parent or children based on who have the lowest variation. However, this strategy alone will not work because MSERs corresponding to characters may not necessarily have lowest variations. Consider a very common situation depicted in Figure 2.The children of the MSER tree in Figure 2a correspond to characters while the parent of the MSRE tree in Figure 2bcorresponds to character. The minimize variation strategy cannot deal with this situation because either parent or children may have the lowest variations. However, our experiment shows that this limitation can be easily fixed by variation regularization, whose basic idea is to penalize variations of MSERs with too large or too small aspect ratios. Note that we are not requiring characters tohave the lowest variations globally, a lower variation parent-children relationship suffices for our algorithm. Let V be the variation and be the aspect ratio of a MSER, the aspect ratios of characters are expected to the regularized variation is defined shows a MSER tree colored according to variation. As variation increases, the color changes from green to yellow then to red. The same tree coloured according to regularized variation is shown in Figure 3c.The MSER tree in Figure 3c are used in our linear reduction (result presented in Figure 3d) and tree accumulation algorithm (result presented in Figure 3e).Notice that variation in the following sections refer to regularized variation.

3.1.3 Linear Reduction

The linear reduction algorithm is used in situations where MSERs has only one child. The algorithm chooses from parent and child the one with the minimum variation and discards the other. This procedure is applied across the whole tree recursively. The detailed algorithm is presented in Figure 4.Given a MSER tree, the procedure returns the root of the processed tree whose linear segments are reduced. The procedure works as follows. Given a node t, the procedure checks the number of children of t; if t has no children, returns t immediately; if t has only one child, get the root c of child tree by first applying the linear reduction procedure to the child tree; if t has a lower variation compared with c, link cs children to t and return t; otherwise we return c; if t has more than one children, process these children using linear reductionand link the resulting trees to t before returning Figure 3d shows the resulting MSER tree after applying linear reduction to the tree shown in Figure 3c. Note thatin the resulting tree all linear segments are reduced and on-leaf nodes always have more than one children.

3.1.4 Tree Accumulation

The tree accumulation algorithm is used when Meshes more than one child. Given a MSER tree, the procedure returns a set of disconnected nodes. The algorithm works as follows. For a given node t, tree accumulation checks the number of ts children; if t has no children, return immediately; if t has more than two children, create an empty set C and append the result of applying tree accumulation to ts children to C; if one of the nodes in C has a lower variation than ts variation, return C, else discard ts children and return t. Figure 3eshows the result of applying tree accumulation to the tree shown in Figure 3d. Note that the final result is a set of disconnected nodes containing all the characters in the original MSER tree.

3.2 Text Candidates Construction

Text candidates are constructed by clustering character candidates using the single-link clustering algorithm [?].Intuitively, single-link clustering produce clusters that are elongated and thus is particularly suitable for the text candidates construction task. Single-link clustering belongs to the family of hierarchical clustering; in hierarchical clustering, each data point is initially treated as a singleton cluster and clusters are successively merged until all points have been merged into a single remaining cluster. In the case of single-link clustering, the two clusters whose two closest members have the smallest distance are merged in each step. A distance threshold can be specified such that the clustering progress is terminated when the distance between nearest clusters exceeds the threshold. The resulting clusters of single link algorithm form a hierarchical cluster tree or cluster forest if termination threshold is specified. In the above algorithm, each data point represent a character candidate and top level clusters in the final hierarchical cluster tree (forest) correspond to text candidates.

3.3 Text Candidates EliminationUsing the text candidates construction algorithm proposed experiment in ICDAR 2011competition training set shows that only 9% of the text candidates correspond to true text. As it is hard to trainman effective text classifier using such unbalanced dataset, most of the non-text candidates need to be removed before training the classifier. We propose to use a character classifier to estimate the posterior probabilities of text candidates corresponding to non-text and remove text candidates with high probabilities for non-text stroke width variation, height, width, and aspect ratio. Characters with small aspect ratios such as i, j and are treated as negative samples, as it is very uncommon that some words comprise many small aspect ratiocharacters.Given a text candidate T, let O(m; n; p) be the observation that there are m (m 2 N;m _ 2) character candidates in T, of which n (n 2 N; n _ m) are classified as non-characters by a character classifier of precision p (0 < p < 1).

CHAPTER 3

REQUIREMENTS ENGINEERING3.1 GENERALPredicting how MATLAB will perform while running an application on a particular computer is difficult. So,MathWorks offers this general guidance on platform selection criteria and emphasizes that it is not a substitute for testing your application on a particular computer such as Operating Systems(32bit (or) 64 bit),Hardware considerations like central processing unit, hard disk, memory, Graphics Processing Unit (GPU) for display ,Graphics Processing Unit (GPU) for computation.

3.2 HARDWARE REQUIREMENTS

The hardware requirements may serve as the basis for a contract for the implementation of the system and should therefore be a complete and consistent specification of the whole system. They are used by software engineers as the starting point for the system design. It shows what the system does and how it should be implemented.

PROCESSOR: PENTIUM IV 2.6 GHz, Intel Core 2Duo. RAM : 512 MB DD RAM MONITOR: 15 COLOR HARD DISK : 40 GB CDDRIVE: LG 52X KEYBOARD: STANDARD 102 KEYS MOUSE : 3 BUTTONS

3.3 SOFTWARE REQUIREMENTS MATLAB 7.9 Version

MATLAB

MATLAB is a high-performance language for technical computing. It integrates computation, visualization, and programming in an easy-to-use environment where problems and solutions are expressed in familiar mathematical notation. Typical uses include: 1. Math and computation. 1. Algorithm development. 1. Modeling, simulation, and prototyping. 1. Data analysis, exploration, and visualization. 1. Scientific and engineering graphics. 1. Application development, including Graphical User Interface building.

MATLAB is an interactive system whose basic data element is an array that does not require dimensioning. This allows you to solve many technical computing problems, especially those with matrix and vector formulations, in a fraction of the time it would take to write a program in a scalar non-interactive language such as C or FORTRAN (Formula translation).

CHAPTER 4SOFTWARE SPECIFICATION4.1 general

MATLAB(matrixlaboratory) is anumerical computingenvironment andfourth-generation programming language. Developed byMath Works, MATLAB allowsmatrixmanipulations, plotting offunctionsand data, implementation ofalgorithms, creation ofuser interfaces, and interfacing with programs written in other languages, includingC,C++,Java, andFortran. Although MATLAB is intended primarily for numerical computing, an optional toolbox uses theMuPAD symbolic engine, allowing access tosymbolic computingcapabilities. An additional package,Simulink, adds graphical multi-domain simulation andModel-Based Designfordynamicandembedded systems. In 2004, MATLAB had around one million users across industry and academia.MATLAB users come from various backgrounds ofengineering,science, andeconomics. MATLAB is widely used in academic and research institutions as well as industrial enterprises. MATLAB was first adopted by researchers and practitioners incontrol engineering, Little's specialty, but quickly spread to many other domains. It is now also used in education, in particular the teaching oflinear algebraandnumerical analysis, and is popular amongst scientists involved inimage processing. The MATLAB application is built around the MATLAB language. The simplest way to execute MATLAB code is to type it in the Command Window, which is one of the elements of the MATLAB Desktop. When code is entered in the Command Window, MATLAB can be used as an interactive mathematicalshell. Sequences of commands can be saved in a text file, typically using the MATLAB Editor, as ascriptor encapsulated into afunction, extending the commands available. MATLAB provides a number of features for documenting and sharing your work. You can integrate your MATLAB code with other languages and applications, and distribute your MATLAB algorithms and applications.

4.2 features of matlab High-level language for technical computing. Development environment for managing code, files, and data. Interactive tools for iterative exploration, design, and problem solving. Mathematical functions for linear algebra, statistics, Fourier analysis, filtering, optimization, and numerical integration. 2-D and 3-D graphics functions for visualizing data. Tools for building custom graphical user interfaces. Functions for integrating MATLAB based algorithms with external applications and languages, such as C, C++, Fortran, Java, COM, and MicrosoftExcel.

MATLAB is used in vast area, including signal and image processing, communications, control design,test and measurement, financial modeling and analysis, and computational. Add-on toolboxes (collections of special-purpose MATLAB functions) extend the MATLAB environment to solve particular classes of problems in these application areas. MATLAB can be used on personal computers and powerful server systems, including theCheahacompute cluster. With the addition of the Parallel Computing Toolbox, the language can be extended with parallel implementations for common computational functions, including for-loop unrolling. Additionally this toolbox supports offloading computationally intensive workloads toCheahathe campus compute cluster. MATLAB is one of a few languages in which each variable is a matrix (broadly construed) and "knows" how big it is. Moreover, the fundamental operators (e.g. addition, multiplication) are programmed to deal with matrices when required. And the MATLAB environment handles much of the bothersome housekeeping that makes all this possible. Since so many of the procedures required for Macro-Investment Analysis involves matrices, MATLAB proves to be an extremely efficient language for both communication and implementation.

4.2.1 INTERFACING WITH OTHER LANGUAGES MATLAB can call functions and subroutines written in theC programming languageorFORTRAN. A wrapper function is created allowing MATLAB data types to be passed and returned. The dynamically loadable object files created by compiling such functions are termed "MEX-files" (forMATLABexecutable). Libraries written inJava,ActiveXor.NETcan be directly called from MATLAB and many MATLAB libraries (for exampleXMLorSQLsupport) are implemented as wrappers around Java or ActiveX libraries. Calling MATLAB from Java is more complicated, but can be done with MATLAB extension, which is sold separately byMath Works, or using an undocumented mechanism called JMI (Java-to-Mat lab Interface),which should not be confused with the unrelated Javathat is also called JMI. As alternatives to theMuPADbased Symbolic Math Toolbox available from Math Works, MATLAB can be connected toMapleorMathematica. Libraries also exist to import and exportMathML.

Development Environment Startup Accelerator for faster MATLAB startup on Windows, especially on Windows XP, and for network installations. Spreadsheet Import Toolthat provides more options for selecting and loading mixed textual and numeric data. Readability and navigation improvements to warning and error messages in the MATLAB command window. Automatic variable and function renamingin the MATLAB Editor.

Developing Algorithms and ApplicationsMATLAB provides a high-level language and development tools that let you quickly develop and analyze your algorithms and applications.The MATLAB Language

The MATLAB language supports the vector and matrix operations that are fundamental to engineering and scientific problems. It enables fast development and execution. With the MATLAB language, you can program and develop algorithms faster than with traditional languages because you do not need to perform low-level administrative tasks, such as declaring variables, specifying data types, and allocating memory. In many cases, MATLAB eliminates the need for for loops. As a result, one line of MATLAB code can often replace several lines of C or C++ code.At the same time, MATLAB provides all the features of a traditional programming language, including arithmetic operators, flow control, data structures, data types,object-oriented programming(OOP), and debugging features.MATLAB lets you execute commands or groups of commands one at a time, without compiling and linking, enabling you to quickly iterate to the optimal solution. For fast execution of heavy matrix and vector computations, MATLAB uses processor-optimized libraries. For general-purpose scalar computations, MATLAB generates machine-code instructions using its JIT (Just-In-Time) compilation technology.This technology, which is available on most platforms, provides execution speeds that rival those of traditional programming languages.

Development Tools MATLAB includes development tools that help you implement your algorithm efficiently. These include the following:

MATLAB Editor Provides standard editing and debugging features, such as setting breakpoints and single stepping.Code Analyzer Checks your code for problems and recommends modifications to maximize performance and maintainability.MATLAB Profiler Records the time spent executing each line of code.Directory Reports Scan all the files in a directory and report on code efficiency, file differences, file dependencies, and code coverage.

Designing Graphical User Interfaces By using the interactive tool GUIDE (Graphical User Interface Development Environment) to layout, design, and edit user interfaces. GUIDE lets you include list boxes, pull-down menus, push buttons, radio buttons, and sliders, as well as MATLAB plots and Microsoft ActiveXcontrols. Alternatively, you can createGUIsprogrammatically using MATLAB functions.4.2.2 ANALYZING AND ACCESSING DATA MATLAB supports the entire data analysis process, from acquiring data from external devices and databases, through preprocessing, visualization, and numerical analysis, to producing presentation-quality output.Data Analysis MATLAB provides interactive tools and command-line functions for data analysis operations, including: Interpolating and decimating Extracting sections of data, scaling, and averaging Thresholding and smoothing Correlation, Fourier analysis, and filtering 1-D peak, valley, and zero finding Basic statistics and curve fitting Matrix analysis

Data Access MATLAB is an efficient platform for accessing data from files, other applications, databases, and external devices. You can read data from popular file formats, such as Microsoft Excel; ASCII text or binary files; image, sound, and video files; and scientific files, such as HDF and HDF5. Low-level binary file I/O functions let you work with data files in any format. Additional functions let you read data from Web pages and XML.

Visualizing Data All the graphics features that are required to visualize engineering and scientific data are available in MATLAB. These include 2-D and 3-D plotting functions, 3-D volume visualization functions, tools for interactively creating plots, and the ability to export results to all popular graphics formats. You can customize plots by adding multiple axes; changing line colors and markers; adding annotation, Latex equations, and legends; and drawing shapes.

2-D PlottingVisualizing vectors of data with 2-D plotting functions that create: Line, area, bar, and pie charts. Direction and velocity plots. Histograms. Polygons and surfaces. Scatter/bubble plots. Animations.

3-D Plotting and Volume Visualization MATLAB provides functions for visualizing 2-D matrices, 3-D scalar, and 3-D vector data. You can use these functions to visualize and understand large, often complex, multidimensional data. Specifying plot characteristics, such as camera viewing angle, perspective, lighting effect, light source locations, and transparency. 3-D plotting functions include: Surface, contour, and mesh. Image plots. Cone, slice, stream, and isosurface.

4.2.3 PERFORMING NUMERIC COMPUTATION MATLAB contains mathematical, statistical, and engineering functions to support all common engineering and science operations. These functions, developed by experts in mathematics, are the foundation of the MATLAB language. The core math functions use the LAPACK and BLAS linear algebra subroutine libraries and the FFTW Discrete Fourier Transform library. Because these processor-dependent libraries are optimized to the different platforms that MATLAB supports, they execute faster than the equivalent C or C++ code.

MATLAB provides the following types of functions for performing mathematical operations and analyzing data: Matrix manipulation and linear algebra. Polynomials and interpolation. Fourier analysis and filtering. Data analysis and statistics. Optimization and numerical integration. Ordinary differential equations (ODEs). Partial differential equations (PDEs). Sparse matrix operations. MATLAB can perform arithmetic on a wide range of data types, including doubles, singles, and integers.4.2.4 List of Matlab Commands Used In This Project And Their Explanation:1) Imread:Read image from graphics fileSyntax:Imread(filename, fmt)

Description:A = imread(filename, fmt) reads a grayscale or color image from the file specified by the string filename. If the file is not in the current folder, or in a folder on the MATLAB path, specify the full pathname.2) Imwrite:Write image to graphics fileSyntax:Imwrite(A, filename, fmt)Description:imwrite(A,filename,fmt) writes the image A to the file specified by filename in the format specified by fmt.3) Imshow:Display imageSyntax: imshow(I)Description:imshow(I) displays the grayscale image I. 4) rgb2grayConvert RGB image or colormap to grayscaleSyntax I=rgb2gray(RGB)DescriptionI = rgb2gray(RGB) converts the truecolor image RGB to the grayscale intensity image I. rgb2gray converts RGB images to grayscale by eliminating the hue and saturation information while retaining the luminance.5) im2doubleConvert image to double precisionSyntax I2 = im2double(I)DescriptionI2 = im2double(I) converts the intensity image I to double precision, rescaling the data if necessary. If the input image is of class double, the output image is identical. 6) imresizeResize imageSyntax B = imresize(A, [mrows ncols])DescriptionB = imresize(A, [mrows ncols]) returns image B that has the number of rows and columns specified by [mrows ncols]. Either NUMROWS or NUMCOLS may be NaN, in which case imresize computes the number of rows or columns automatically to preserve the image aspect ratio.7) signSignum functionSyntax Y = sign(X)DescriptionY = sign(X) returns an array Y the same size as X, where each element of Y is: 1 if the corresponding element of X is greater than zero 0 if the corresponding element of X equals zero -1 if the corresponding element of X is less than zeroFor nonzero complex X, sign(X) = X./abs(X).8) zerosCreate array of all zerosSyntax B=zeros(n)B = zeros(m,n)DescriptionB = zeros(n) returns an n-by-n matrix of zeros. An error message appears if n is not a scalar.B = zeros(m,n) or B = zeros([m n]) returns an m-by-n matrix of zeros.9) roundRound to nearest integerSyntax Y = round(X)DescriptionY = round(X) rounds the elements of X to the nearest integers. For complex X, the imaginary and real parts are rounded independently.10) ndimsNumber of array dimensionsSyntax n = ndims(A)Descriptionn = ndims (A) returns the number of dimensions in the array A. The number of dimensions in an array is always greater than or equal to 2. Trailing singleton dimensions are ignored. A singleton dimension is any dimension for which size(A,dim) = 1.11) maxLargest elements in arraySyntax C = max(A)C = max(A,B)C = max(A,[],dim)[C,I] = max(...)DescriptionC = max(A) returns the largest elements along different dimensions of an array.If A is a vector, max(A) returns the largest element in A.If A is a matrix, max(A) treats the columns of A as vectors, returning a row vector containing the maximum element from each column. If A is a multidimensional array, max(A) treats the values along the first non-singleton dimension as vectors, returning the maximum value of each vector. C = max(A,B) returns an array the same size as A and B with the largest elements taken from A or B. The dimensions of A and B must match, or they may be scalar.C = max(A,[],dim) returns the largest elements along the dimension of A specified by scalar dim. For example, max(A,[],1) produces the maximum values along the first dimension (the rows) of A.[C,I] = max(...) finds the indices of the maximum values of A, and returns them in output vector I. If there are several identical maximum values, the index of the first one found is returned.12) cputimeElapsed CPU timeSyntax cputimeDescriptioncputime returns the total CPU time (in seconds) used by your MATLAB application from the time it was started. This number can overflow the internal representation and wrap around.13) sumSum of array elementsSyntax B = sum(A)DescriptionB = sum(A) returns sums along different dimensions of an array.14) Difference between Vectorization and PreallocationOne way to make your MATLAB programs run faster is to vectorize the algorithms you use in constructing the programs. Where other programming languages might use for loops or DO loops, MATLAB can use vector or matrix operations. A simple example involves creating a table of logarithms:x = .01;for k = 1:1001 y(k) = log10(x); x = x + .01;endA vectorized version of the same code isx = .01:.01:10;y = log10(x);For more complicated code, vectorization options are not always so obvious. If you cannot vectorize a piece of code, you can make your for loops go faster by preallocating any vectors or arrays in which output results are stored. For example, this code uses the function zeros to preallocate the vector created in the for loop. This makes the for loop execute significantly faster:r = zeros(32,1);for n = 1:32 r(n) = rank(magic(n));endWithout the preallocation in the previous example, the MATLAB interpreter enlarges the r vector by one element each time through the loop. Vector preallocation eliminates this step and results in faster execution.15) num2strConvert number to stringSyntax str = num2str(A)DescriptionThe num2str function converts numbers to their string representations. This function is useful for labeling and titling plots with numeric values.str = num2str(A) converts array A into a string representation str with roughly four digits of precision and an exponent if required.DATASET:

CHAPTER 8CONCLUSION

8.1 CONCLUSION

The methods have been proposed. We propose a fast and accurate MSERs pruning algorithm that enables us to detect most the characters even when the image is in low quality. We propose a novel self-training distance metric learning algorithm that can learn distance weights and threshold simultaneously; text candidates are constructed by clustering character candidates by the single link algorithm using the learned parameters. We propose to use a character classifier to estimate the posterior probability of text candidate corresponding to non-text and eliminate text candidates with high probability for non-text, which helps to build a more powerful text classifier. By integrating the above ideas, we built a robust scene text detection system that exhibited superior performance over state-of-the-art methods on both the ICDAR 2011 Competition dataset and a multilingual dataset.