Traffic sign feature extraction

Traffic sign feature extraction

It is very important to choose proper image features for the pattern recognition. However, this feature extrating algorithm should only be applied to our region of interests (ROIs). For this, we composed the pre-processing job for traffic sign recognition into several sequential steps as shown in the following picture.


1st classification: Traffic sign boundary detection

We first develop a tool to detect and extract the traffic signs from a given natural scene capture. This algorithm first detects the (canny) edge of a given image and after performs the edge enhancement through by the pyramid down and up sampling, which is similar to low pass filtering but this makes the source image have a Gaussian probability distribution. To find a shape of our interests, it detects a contour in an image recursively that is convex and has a specified number of vertices.

Image:eight.png|Original input Image:eight_pyramid_down.png|Pyramid down to remove noises Image:eight_pyramid_up.png|Pyramid up to recover its size Image:eight_blue_plane_canny.png|Canny edge detection Image:eight_blue_plane_canny_dilate.png|Dilate edges Image:eight_blue_plane_canny_dilate_threshold_binary_1.png|Apply threholds in multiple levels to detect polygons Image:eight_blue_plane_canny_dilate_threshold_binary_5.png Image:eight_blue_plane_canny_dilate_threshold_binary_11.png


Users can freely choose the number of vertices of polygons to detect. For instance, if you want to detect the rectangle, you specify the number of vertices as four. Our preliminary experiments performed based on above algorithms show well the robustness of our algorithms.

Image:three.png Image:three_detected.png Image:four.png Image:four_detected.png Image:five.png Image:five_detected.png Image:eight.png Image:eight_result_external_polygon.png

Let us see one more test results using more complex natural scene captures. Following pictures are the actual DOT database images.

Image:2F000088.jpg Image:2F000088_detected.png Image:2F000107.jpg Image:2F000107_detected.png Image:2F000307.jpg Image:2F000307_detected.png Image:2F002688.jpg Image:2F002688_detected.png Image:3S000106.jpg Image:3S000106_detected.png

This convex polygon detection algorithm works well for 4 images and fails at one image (2F000307.JPG). However, we need to perform more tests to find optimal parameters – Sure there are a number of parameters to control its computing methods.

Options used to control the polygon detection:

  • m_iPolygonOfInterests.Add(4) // Detect retangles only ( 4 vertices)
  • m_iCannyUpperThreshold = 50
  • m_fMinContourArea = 500
  • m_fPermitAngleDeviation = 1.0
  • m_bSetPolygonConvexity = TRUE
  • m_fContourParameter = 0.017
  • m_iContourMethod = 1
  • m_bUseRGB = TRUE

Anyway, this polygon detection algorithm is to extract the correct boundary of a traffic sign from the source image which is assumed to come from already developed traffic sign detection algorithms. And this polygon detection algorithm is supposed to remove the redundancy in the image to extract the correct boundary of the traffic sign of our interest as shown well at the first experiment results.

You can download the source codes for the convex polygon detection at It utilizes the OpenCV library. Excutable binaries for Microsoft Windows also are available here

2nd classification: ROI background color detection

Within detected polygons returned from above steps we should decide whether they are kinds of taffic signs or not. For this, we first compute the color historgram of the inside closed polygon area. And after, decide the dominating color as the background color of the area. This helps correctly decide whether it it one kind of traffic signs or not. Based on MUTCD specifications, only seven colors (white, black, red, brown, green, dark blue and yellow) are used to draw traffic signs and within those, white, green, brown, yellow and dark blue colors are used in the sign background. So this color histogram will help us remove false detections at the earliest computing stage.

3rd classification: Color-coded binarization

This is the final step just before the traffic sign recognition. At here, we prepare the inputs for the ANN inputs. Binarization in our approach does not mean the simple thresholding into zero and one. In practice, a traffic sign can be composed of several colors, we need to divide the foreground and the background area. In the current experiment, the background color detected at the 2nd classification will be applied to the area of an extracted ROI region as a mask to show only the foreground information. Then this final foreground area will be forwared to the ANN while keeping their color-code for the future classification.