/Traffic-Sign-Recognition-PyQt5-YOLOv5-GUI

这是一个基于YOLOv5🚀的道路标志识别系统😊,使用了MySQL数据库💽,PyQt5进行界面设计🎨,PyTorch深度学习框架和TensorRT进行加速⚡,同时包含了CSS样式🌈。系统由五个主要模块组成:系统登录模块🔑负责用户登陆;初始化参数模块📋提供YOLOv5模型的初始化参数设置;标志识别模块🔍是系统的核心,负责对道路标志进行识别并将结果导入数据库;数据库模块💾包含基本数据库操作和数据分析两个子模块;图像处理模块🖼️负责单个图像的处理和数据增强。整个系统支持多种数据输入和模型切换,提供了包括mossic和mixup在内的图像增强方法📈。

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

Road Sign Recognition Project Based on YOLOv5 (YOLOv5 GUI)

English | 简体中文

训练策略

This is a road sign recognition project based on YOLOv5, developed with a PyQt5 interface, YOLOv5 trained model, and MySQL database. The project consists of five modules: parameter initialization, sign recognition, database, data analysis, and image processing(Please refer to the Chinese document for details),This project uses YOLOv5 v6.1. 00013.jpg

Screenshots

  • Sign Recognition Module

    img.png
  • Image Processing and Data Augmentation Module

    img_1.png
  • Parameter Initialization Module

    img_2.png
  • Database Module

    img_3.png
  • Data Analysis Module

    img_4.png
  • Login Interface

    img_5.png

Video Demo

Road Sign Recognition System Based on YOLOV5

Install Dependencies

To install the required dependencies, run:

pip install -r requirements.txt

Quick Start

1. Setting Up the Database

To run the application, you need to set up your MySQL database. Follow these steps to prepare your database:

  • Automatic Database Creation (Optional):
    • If you prefer an automated setup, a batch script is provided. Run the setup_database.bat script to create the database. This requires MySQL to be installed and configured on your system.
  • Manual Database Creation:
    • Alternatively, you can manually create the database in MySQL. Import and execute the data/regn_mysql.sql file in your MySQL environment to set up the necessary database and tables.

2. Configuring Database Connection in Code

After setting up the database, update the connection Settings in the code; These 4 variables in the beginning of the code, please change your local database authentication information; There are two calls in the recasting of this authentication information (approximately lines 111 and 1783)

# Database connection settings as global variables
DB_HOST = 'localhost'    # Database host
DB_USER = 'root'         # Database user
DB_PASSWORD = '1234'     # Database password
DB_NAME = 'traffic_sign_recognition'  # Database name

Note on Cryptography Package

If you encounter a RuntimeError: 'cryptography' package is required for sha256_password or caching_sha2_password auth methods, This is necessary for certain MySQL authentication methods.

3. Run main.py.

4. Enter your account and password to log in

Here are the default login credentials:

Username Password
admin 123456
1 2

Or modify the main function in main.py: remove the logon logic to enter the system directly without authentication.


Project Structure

  • pt folder: Contains the YOLOv5 model file best.pt for road sign recognition.
  • main_with folder: Contains login.py for the login UI and win.py for the main UI.
  • dialog folder: Contains the RTSP pop-up interface.
  • apprcc_rc.py: The resource file for the project.
  • login_ji.py: Implements the login logic for the UI.
  • data/run/run-exp52: The YOLOv5 road sign recognition model trained for 300 epochs.
  • utils/tt100k_to_voc-main folder: Tool for converting JSON annotations to YOLO format.
  • result: Folder to save inference results.
  • run: Folder to save training logs and outputs.
  • Dataset: Download from TT100k : Traffic-Sign Detection and Classification in the Wild.
  • Database files: Located in the data folder, see -regn_mysql.sql for setup.

Acknowledgements

  • For converting the TT100K dataset to VOC format and selecting more than 100 images and XMLs for each category, see this CSDN blog post.
  • The PyQt5-YOLOv5 integration was inspired by this GitHub repository.

Star History

Track the GitHub star history of this project:

Star History Chart