| Literature DB >> 28264011 |
Kwangyong Lim1, Yongwon Hong1, Yeongwoo Choi2, Hyeran Byun1.
Abstract
We present a General Purpose Graphics Processing Unit (GPGPU) based real-time traffic sign detection and recognition method that is robust against illumination changes. There have been many approaches to traffic sign recognition in various research fields; however, previous approaches faced several limitations when under low illumination or wide variance of light conditions. To overcome these drawbacks and improve processing speeds, we propose a method that 1) is robust against illumination changes, 2) uses GPGPU-based real-time traffic sign detection, and 3) performs region detecting and recognition using a hierarchical model. This method produces stable results in low illumination environments. Both detection and hierarchical recognition are performed in real-time, and the proposed method achieves 0.97 F1-score on our collective dataset, which uses the Vienna convention traffic rules (Germany and South Korea).Entities:
Mesh:
Year: 2017 PMID: 28264011 PMCID: PMC5338798 DOI: 10.1371/journal.pone.0173317
Source DB: PubMed Journal: PLoS One ISSN: 1932-6203 Impact factor: 3.240
Fig 1Block diagram of proposed method.
Fig 2Example of the Byte-MCT code generation.
AdaBoost learning algorithm based on landmarks.
| } | |
Fig 3Example of landmarks in a traffic sign using the proposed AdaBoost learning algorithm.
Fig 4Examples of sliding-window search and parallel-window search.
Example of GPU kernel function.
| __global__ void gpu_detectObjects( | ||
| int* gpu_mctFeat, int* gpu_objectMap, int mctWidth, int mctHeight, | ||
| int roiWidth, int roiHeight, float mctThreshold, | ||
| int *gpu_wq, float *gpu_th, int *gpu_xt, | ||
| float *gpu_at, float *gpu_wt) | ||
| { | ||
| const int idx = blockIdx.x * blockDim.x + thread.x; | ||
| const int yPos = idx / mctWidth | ||
| const int xPos = idx % mctWidth; | ||
| const weakClassifierQty = gpu_wq[0]; | ||
| float classifierThres = gpu_th[0] + gpu_th[ | ||
| float sum = 0.0f; | ||
| for (int i = 0; i < weakClassifierQty; i++) | ||
| { | ||
| const int sub_x = xPos + gpu_xt[i] % roiWidth; | ||
| const int sub_y = yPos + gpu_xt[i] / roiWidth; | ||
| const int sub_pos = sub_y * mctWidth + sub_x; | ||
| int sub_feat = gpu_mctFeat[sub_pos]; | ||
| sum + = gpu_at[i] * gpu_wt[(i*256) + sub_feat]; | ||
| } | ||
| if (sum < classifierThres) | ||
| { | ||
| gpu_objectMap[idx] = (int)roiWidth; | ||
| } else { | ||
| gpu_objectMap[idx] = (int)0; | ||
| } | ||
| } | ||
Fig 5Example of verification of feature extraction.
Fig 6Example of entire sign recognition structure.
Fig 7Example of proposed model architecture.
Fig 8Examples from the LISA US speed-limit dataset and our real-world driving dataset.
Specification of test-sets.
| Name | Type | Location | Frames | Signs | Resolution |
|---|---|---|---|---|---|
| LISA-SPEED | Daylight, Cloudy | USA | 641 | 637 | 1280 × 960 |
| DE-D | Daylight, Rain, Cloudy | Germany | 4,765 | 2,001 | 1280 × 672 |
| KR-D | Daylight, Rain, Cloudy | Korea | 4,527 | 2,294 | 1280 × 672 |
| KR-N | Night | Korea | 3,086 | 1,343 | 1280 × 672 |
Results of detection performance using ACF without classification.
| Method | Dataset | TP | FP | FN | Precision | Recall | F1 |
|---|---|---|---|---|---|---|---|
| ACF | LISA | N/A | N/A | N/A | N/A | N/A | 0.8431 |
| DE-D | 1,275 | 356 | 429 | 0.7817 | 0.7482 | 0.7646 | |
| KR-D | 1,739 | 323 | 233 | 0.8433 | 0.8818 | 0.8621 | |
| KR-N | 122 | 82 | 1,114 | 0.5773 | 0.0913 | 0.1577 |
Results of detection and recognition performance using the proposed method.
| Method | Dataset | TP | FP | FN | Precision | Recall | F1 |
|---|---|---|---|---|---|---|---|
| Proposed | LISA | 528 | 19 | 104 | 0.9652 | 0.8354 | 0.8956 |
| DE-D | 1,916 | 47 | 73 | 0.9760 | 0.9633 | 0.9696 | |
| KR-D | 2,249 | 22 | 44 | 0.9903 | 0.9808 | 0.9855 | |
| KR-N | 1,314 | 28 | 19 | 0.9791 | 0.9857 | 0.9824 |
Results of detection and recognition performance using the single CNN.
| Method | Dataset | TP | FP | FN | Precision | Recall | F1 |
|---|---|---|---|---|---|---|---|
| Byte-MCT Detector & CNN only | DE-D | 1,632 | 361 | 53 | 0.8188 | 0.9685 | 0.8874 |
| KR-D | 1,486 | 535 | 536 | 0.7352 | 0.7349 | 0.7351 | |
| KR-N | 1,190 | 937 | 195 | 0.5594 | 0.8592 | 0.6776 |
Fig 9Resultant examples of proposed method for the LISA speed-limit test-set.
Fig 10Resultant examples of proposed method for the Germany (DE-D) test-set.
Fig 11Resultant examples of proposed method for the Korea (KR-D) test-set.
Fig 12Incorrect results using the proposed method for the Korea (KR-D) test-set.
Results of detection performance comparison.
| Dataset | Detector | Recall |
|---|---|---|
| DE-D | 9F (9bit MCT + Full-size classifier) | 0.5476 |
| 9L (9bit MCT + Landmark classifier) | 0.8473 | |
| 8F (8bit MCT + Full-size classifier) | 0.5678 | |
| 8L (8bit MCT + Landmark classifier) | ||
| KR-D | 9F (9bit MCT + Full-size classifier) | 0.8236 |
| 9L (9bit MCT + Landmark classifier) | 0.9795 | |
| 8F (8bit MCT + Full-size classifier) | 0.8304 | |
| 8L (8bit MCT + Landmark classifier) | ||
| KR-N | 9F (9bit MCT + Full-size classifier) | 0.5102 |
| 9L (9bit MCT + Landmark classifier) | 0.7074 | |
| 8F (8bit MCT + Full-size classifier) | 0.5355 | |
| 8L (8bit MCT + Landmark classifier) |
Comparison of time consumption using CPU or GPGPU.
| Window Size | Image Resolution | CPU | GPGPU | ||||
|---|---|---|---|---|---|---|---|
| B.MCT | Detection | Total | B.MCT | Detection | Total | ||
| Trans.(ms) | (ms) | (ms) | Trans.(ms) | (ms) | (ms) | ||
| 40 × 40 | 1920 × 1080 | 135.45 | 352.26 | 487.61 | 3.57 | 2.40 | 5.97 |
| 1632 × 918 | 95.69 | 252.03 | 347.72 | 2.27 | 1.67 | 3.94 | |
| 1344 × 756 | 64.97 | 167.99 | 232.87 | 1.59 | 1.04 | 2.63 | |
| 1056 × 594 | 40.16 | 97.33 | 137.46 | 0.91 | 0.60 | 1.51 | |
| 768 × 432 | 20.92 | 49.02 | 69.94 | 0.13 | 0.17 | 0.30 | |
| 480 × 270 | 8.17 | 15.47 | 23.64 | 0.11 | 0.06 | 0.17 | |
| 365.36 | 933.98 | 8.58 | 5.94 | ||||
| 60 × 60 | 1920 × 1080 | 135.45 | 333.31 | 452.21 | 3.57 | 2.23 | 5.8 |
| 1632 × 918 | 95.69 | 248.00 | 343.69 | 2.27 | 1.59 | 3.86 | |
| 1344 × 756 | 64.97 | 152.10 | 217.07 | 1.59 | 1.15 | 2.74 | |
| 1056 × 594 | 40.16 | 86.66 | 126.82 | 0.91 | 0.64 | 1.55 | |
| 768 × 432 | 20.92 | 41.37 | 62.29 | 0.13 | 0.14 | 0.27 | |
| 480 × 270 | 8.17 | 11.02 | 19.19 | 0.11 | 0.09 | 0.2 | |
| 365.36 | 872.46 | 8.58 | 5.84 | ||||
| 80 × 80 | 1920 × 1080 | 135.45 | 316.76 | 452.21 | 3.57 | 2.06 | 5.63 |
| 1632 × 918 | 95.69 | 222.18 | 317.87 | 2.27 | 1.50 | 3.77 | |
| 1344 × 756 | 64.97 | 150.52 | 215.49 | 1.59 | 1.07 | 2.66 | |
| 1056 × 594 | 40.16 | 80.44 | 120.60 | 0.91 | 0.63 | 1.54 | |
| 768 × 432 | 20.92 | 34.31 | 55.23 | 0.13 | 0.17 | 0.30 | |
| 480 × 270 | 8.17 | 7.56 | 15.73 | 0.11 | 0.11 | 0.22 | |
| 365.36 | 811.77 | 8.58 | 5.54 | ||||
| 100 × 100 | 1920 × 1080 | 135.45 | 314.14 | 449.59 | 3.57 | 2.01 | 5.58 |
| 1632 × 918 | 95.69 | 219.28 | 314.97 | 2.27 | 1.45 | 3.72 | |
| 1344 × 756 | 64.97 | 136.07 | 201.04 | 1.59 | 0.94 | 2.53 | |
| 1056 × 594 | 40.16 | 74.25 | 114.41 | 0.91 | 0.71 | 1.62 | |
| 768 × 432 | 20.92 | 29.55 | 50.47 | 0.13 | 0.19 | 0.32 | |
| 480 × 270 | 8.17 | 4.59 | 12.76 | 0.11 | 0.06 | 0.17 | |
| 365.36 | 777.88 | 8.58 | 5.36 | ||||
| 40 × 40 | 1920 × 1080 | 135.45 | 1541.65 | 1677.10 | 3.57 | 8.06 | 11.63 |
| 60 × 60 | 1632 × 918 | 95.69 | 1083.02 | 1178.71 | 2.27 | 5.76 | 8.03 |
| 80 × 80 | 1344 × 756 | 64.97 | 699.47 | 764.44 | 1.59 | 3.92 | 5.51 |
| 100 × 100 | 1056 × 594 | 40.16 | 367.47 | 407.63 | 0.91 | 2.36 | 3.27 |
| 768 × 432 | 20.92 | 167.06 | 187.98 | 0.13 | 0.64 | 0.77 | |
| 480 × 270 | 8.17 | 39.66 | 47.83 | 0.11 | 0.32 | 0.43 | |
| 365.36 | 3898.33 | 8.58 | 21.06 | ||||