Traffic sign recognition on mobile platforms Android using Convolutional Neural Networks with reduced complexity
Traffic sign recognition on mobile platforms Android using Convolutional Neural Networks with reduced complexity
Traffic sign recognition on mobile platforms Android using Convolutional Neural Networks with reduced complexity
Traffic sign recognition on mobile platforms Android using Convolutional Neural Networks with reduced complexity
Traffic sign recognition on mobile platforms Android using Convolutional Neural Networks with reduced complexity
Traffic sign recognition on mobile platforms Android using Convolutional Neural Networks with reduced complexity
Traffic sign recognition on mobile platforms Android using Convolutional Neural Networks with reduced complexity
Traffic sign recognition on mobile platforms Android using Convolutional Neural Networks with reduced complexity
Traffic sign recognition on mobile platforms Android using Convolutional Neural Networks with reduced complexity
Traffic sign recognition on mobile platforms Android using Convolutional Neural Networks with reduced complexity

October - July 2022


Information:

  • Type: Academic project
  • GitHub: Android application
  • Technologies:  Python  OpenCV  Anaconda  Keras  Tensorflow  Scikit-Learn  Tensorflow Lite  Android Studio  Java

Summary:

     The personal undergraduate project in which I created a traffic sign recognition system that was integrated into an Android application.

Description:

     The project involves the implementation and training of different neural models (NL-CNN, MicronNet, Mobile-Net) with different databases (GTSRB, BTSD) and tracking for each the optimization with obtaining those better functional performance (recognition accuracy) under conditions of response times and occupancy a as little memory as possible.

     After finding an optimal classification model, a detection method was sought traffic signs in the images. The YOLO algorithm was used for detection and was trained with different databases.

     The optimal neural models were saved in Tensorflow Lite format and methods for transferring them to an Android application were investigated. Android application must be capable of realizing the function of recognizing traffic signs from new images entered by the user.

     In order to input images based on which to perform the recognition function, two pages were made in application framework: a page where recognition is done in real time by processing images taken from the user's camera and a page where the user can choose images from the device's storage.

     The neural networks for traffic sign classification that were studied in the paper are NL-CNN, MicronNet and MobileNet. These were optimized for the GTSRB and BTSD datasets.

  • The best model which was achieved, both in terms of accuracy and in terms of dimensions and time of answer, it is NL-CNN for which it obtained on the GTSRB dataset or 99.64% accuracy, and on the dataset BTSD 99.3%. NL-CNN is based on a very compact architecture compared to the other models trained in paper or with other reference neural models, which are publicly available and which, for accuracy comparable to the 99.64% value obtained, are several dozen times higher. Number of network parameters is approximately 0.22 million, and the response time obtained is 0.73 ms.
  • For the MicronNet architecture it was obtained for the GTSRB data set or accuracy of 97.62% and for the set of BTSD data, the accuracy obtained has a value of 98.28%. The response time is 0.81 ms, and the number of parameters is about 0.51 million.
  • For networks with MobileNet architecture, the compact version, MobileNetv3-Small, was trained and obtained for the GTSRB data set an accuracy of 95.76% and for the BTSD data set or 97.11% accuracy. time of response obtained is 1.94 ms, and the number of parameters approximately 1 million.

     For traffic sign detection, the compact algorithms from the last two versions of YOLO were trained currently available: YOLOv4 Tiny, YOLOv5 s and YOLOv5 n.

  • To improve performance, the GTSDB data set in which there is a large proportion of traffic signs in far plane was combined with another data set, which also contains mid-plane traffic signs or near.
  • This combined dataset was used to train the YOLOv5 network which has 1.76 million parameters and the following results were obtained: mAP@.5 = 98.4%, mAP@.95 = 68.4%, precision = 97.4%, recall = 95.7%, where @.5 and @.95 refer to the mAP (Mean Average Precision) calculated for an IOU threshold (Intersection Over Union) of 50%, respectively 95%. For this network the response time obtained is 9 ms, and input images have dimensions of 640 x 640 pixels.

     To create the Android application, several implementation options were studied. The solution proposed in the project it is based on very good optimization of neural models and data processing directly on the device without being internet connection required. The advantage of this implementation is the exclusive use of resources devices, not requiring a constant connection to a server, and the possible disadvantage is given by the limitations computational devices, if the neural models are not optimized enough.

 Let's get in touch!

If you want to discuss with me, simply fill in the form and I will contact you soon.

Bucharest • Romania

contact@enricogaraiman.com


 Rate my website!