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.
Road Sign Recognition System Based on YOLOV5
To install the required dependencies, run:
pip install -r requirements.txt
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.
- If you prefer an automated setup, a batch script is provided. Run the
- 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.
- Alternatively, you can manually create the database in MySQL. Import and execute the
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
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.
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.
pt
folder: Contains the YOLOv5 model filebest.pt
for road sign recognition.main_with
folder: Containslogin.py
for the login UI andwin.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.
- 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.
Track the GitHub star history of this project: