Posts

Showing posts with the label Daily Diary

ANPR Week 21 - 24: Documentation

Finally the project is completed. This last month of training was spent in creating project report that will be submitted to the supervisor and in the college. Also proper comments was inserted in the source code. This will help in understanding the code in future. Additional work will be done in the project, especially to create a GUI using Qt. Initially it has hung on executing the application. Also additional information related to project in detail will be posted soon on this blog.

ANPR Week 16 - 20: Testing

This month was used in testing the system and removing errors. Because of limited dataset and non-strict following of number plate standards by Indian vehicles, some errors have still remains in recognizing number plates. The errors occurred in instances where the characters shared some features with other characters like (O, 0), (B, 8) (I, 1), (U, V), (A, 4). Sometimes it skipped some characters present in the number plate. More analysis was done on the results obtained and ways to improve it.

ANPR Week 15( Day 71-75): ANPR Code Implementation - II

Last week, most of the code implementation was completed.  Errors and any kinks that occurred were ironed out. Special stress was given to the plate recognition part. GUI implementation was also tried but some issues have crept up. If no possible solution arises,the idea will be dropped. 

ANPR Week 14 (Day 66-70) : ANPR Code Implementation - I

This week using the Mastering OpenCV book, I tried to implement the ANPR algorithm in code form. The plate localization part was stressed this week. Some parts of code are not explained in detail in book. Have to go through code once more to gain better understanding. 

ANPR Week 13 (Day 61-65): ANPR Algorithm

This week was used in understanding the ANPR algorithm and its different components and steps. There are seven primary algorithms that the software requires for identifying a license plate: Plate localization – responsible for finding and isolating the plate on the picture. Plate orientation and sizing – compensates for the skew of the plate and adjusts the dimensions to the required size. Normalization – adjusts the brightness and contrast of the image. Character segmentation – finds the individual characters on the plates. Optical character recognition. Syntactical/Geometrical analysis – check characters and positions against country-specific rules. The averaging of the recognised value over multiple fields/images to produce a more reliable or confident result. Especially since any single image may contain a reflected light flare, be partially obscured or other temporary effect.

ANPR Week 12 (Day 56-60): Training ANN

This week the images collected were used to train ANN. Some jugaad   was also employed to overcome difficulties and Ouroboro effect was also used to create normalized segmented images of characters.  It could be the Achilles' heel of the main application. But still it might be workable. 

ANPR Week 11 (Day 51-55): Training SVM

Most of the week was spent in gathering the images to train SVM, but still I was unable to gather the required number of images. It was quite an interesting week in terms of facing from angry owners to disgruntled guards. Finally I've decided to use the older XML file as it works pretty well with the given specifications. 

ANPR Week 10 (Day 46-50): Extracting Lines, Contours and Components

This week was devoted in learning how to extract lines, contours and components of images. Day 46: Detecting Image Contours with the Canny Operator Day 47:  Detecting Lines in Images with the Hough Transform Day 48: Fitting a Line to a Set of Points Day 49:  Extracting the Components & Contours Day 50: Computing Components & Shape Descriptors

ANPR Week 9 (Day 41-45): Transforming and filtering images

This week using morphological operations, image transformations were done and use of filters on them. Day 41: Opening and Closing Images using Morphological Filters Day 42: Detecting edges and corners using morphological filters Day 43: Filtering Images using Low-pass Filters Day 44: Filtering Images using a Median Filter Day 45: Applying Directional Filters to Detect Edges

ANPR Week 8 (Day 36-40): Counting the pixels with histograms

This week was spent on learning how to count pixels using histograms. Day 36: Computing the Image histogram Day 37: Equalizing the image histogram Day 38: Backprojecting a Histogram to Detect Specific Image Content Day 39: Using the Meanshift Algorithm to Find an Object Day 40: Retrieving Similar Images using Histogram Comparison

ANPR Week 7 (Day 31-35): Processing Images with Classes

This week we learnt how to process images with classes. It helps in revisiting some important concepts of C++ as well. Day 26 - 28: Using strategy pattern in Algorithm Deesign Day 29 - 30: Converting colour spaces. 

ANPR Week 6 (Day 26-30): Manipulating the Pixels

This week we have learnt to manipulate pixels in images. Day 26: Accessing pixel values Day 27:Scanning an image with pointers and iterators Day 28: Writing efficient image scanning loops Day 29: Performing simple image arithmetic Day 30: Defining regions of interest

ANPR Week 5 ( Day 21-25): Playing with Images

For next 7 weeks, we will learn the basics of OpenCV and how to use it to develop applications. For a CS student like me, what matters more than theoretical knowledge is practical knowledge. People with theoretical knowledge are dimes a dozen while those with practical knowledge and innovative ideas are one in a million. The best source  to learn OpenCV for beginners is :  http://www.laganiere.name/opencvCookbook/ This week we have done following tasks: Day 21: Installing OpenCV2 Library on Windows Day 22: Setting up Visual Studio and windows. Day 23: Creating First OpenCv Project Day 24: Loading, displaying and saving images Day 25:Working with Qt 

ANPR Day 20: ANN - Challenges

The major challenge in training ANN is the large dataset required to get more accurate results. More and more unique images are required  for each character. Also all of these images should be normalized and have same size,i.e., 10 x 10 pixels. To get this dataset we have to use the segmented characters produced by SVM - the Ouroboro problem. No clear solution to this problem has been found. 

ANPR Day 19: Training Data Requirements

Today, training data requirements for ANN were identified. It will require more than 20 images for each character. In our case, we will need to gather data for  set of 26 characters (10 numbers + 26 alphabets).

ANPR Day 18: ANN - How does it work?

Its working principle is mathematically heavy. Basically, it uses some input values, processes it using a function and then matches the value to a particular class.  

ANPR Day 17: ANN - How will it be used?

Today, the role of ANN in our system was analysed. The main role of ANN in our system was understood which is to recognise different characters present on the number plate. 

ANPR Day 16: What is ANN?

Artificial Neural Network an it s major aspects were understood today. In computer science and related fields, artificial neural networks are computational models inspired by animals' central nervous systems (in particular the brain) that are capable of machine learning and pattern recognition. They are usually presented as systems of interconnected "neurons" that can compute values from inputs by feeding information through the network. For example, in a neural network for handwriting recognition, a set of input neurons may be activated by the pixels of an input image representing a letter or digit. The activations of these neurons are then passed on, weighted and transformed by some function determined by the network's designer, to other neurons, etc., until finally an output neuron is activated that determines which character was read. In layman terms, it is used to identify the unique signature between different classes which falls  under same category.

ANPR Day 15: SVM - Challenges

Today, challenges to to train such a large SVM classifier were identified. A lot of training data is required to train SVM. Under given timeline, such a large dataset may not be collected in time. This is the major challenge in training SVM. 

ANPR Day 14: Training Data Requirements

Today, training data requirements were identified to train SVM. It requires 75 plate and 35 non-plate images. If these requirements are not, earlier data stored in training file (XML) will be used.