I spent several hours today working on some of the preprocessing I think might help me find the license plate on the back of a car. As always with this type of problem it is good to start with a few easy cases to help lay some of the groundwork. That is exactly what I did. I got a few of images each of the back of a pickup and the back of a car to use as my sample development images. Here are a couple of sample images so you can see what I am talking about:
My first thought in looking at the images is that there are a lot more edges in the area of the license plate than in other areas of the image so I ran a Sobel magnitude on the entire scene to see if that idea held water. The following are the Sobel magnitude images:
I was right about the license plate lettering, the sobel magnitude image shows a high density of edges, but the proble with this is that there are other high edge density areas of the image. What I needed was a way to narrow down the number of edges so I decided to separate the veritcal edges from the horizontal edges. The horizontal edge image was pretty worthless, but the vertical edge image diminshed many of the extraneous, non-licencse plate edges while still maintaining high density in the are of license plate. The following are the vertical and horizontal edge magnitude images for the car:
So we are a lot closer than when we stared. We could probably do some morphology coupled with connectivity analysis (blobs) and have a pretty good probability of knowing the position of the license plate for these particular cars. After thinking about it for awhile, I thought I would try one more thing to narrow down the search area for the license plates. One thing we have going for us is that the license plate for legal cars should always be somewhere between two red tail lights. So the next step I thought it would be good for us to take is to create an image that maximizes the red channel and suppresses the non-red area of the image. On these two cars, I got some pretty amazing results:
We got very good results. Almost everything in the image is dark with the exception of the red tail lights of the vehicles. The letters on these license plates just happen to be red, so they showed up quite well, too, but not all plates have red lettering. We will have to see what happens on red cars, too. Still, license plate lettering has a finite number of colors, so we will be able to use that to our advantage in the future. I think we are at a point now where I will be able to combine the information from the vertical edge image and the red channel maximized image to start looking for the plate. I will do some image cleanup (morphology and other filters) along with connectivity analysis or area image statistics to isolate the plate. I will probably do that next week or whenever I get a chance to get back to this.