This system is a road sign recognition application leveraging YOLOv5🚀 😊. It employs a MySQL database 💽, PyQt5 for the interface design 🎨, PyTorch deep learning framework⚡. Additionally, it incorporates CSS styles 🌈.
The system comprises five key modules:
The entire system is designed to support various data input methods and model switching. Additionally, it offers image enhancement techniques such as mosaic and mixup 📈.
The three checkboxes in the lower left corner are results save, start database entry, and model visual analysis.
The right column is a batch image data enhancement with custom parameters (using the checked data increment method for all images in a folder with a certain probability)
Model basic parameters Select Configure
YOUTUBE DEMO: Road Sign Recognition System Based on YOLOV5 BiliBili Demo: 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:
setup_database.bat
script to create the database. This requires MySQL to be installed and configured on your system.data/regn_mysql.sql
file in your MySQL environment to set up the necessary database and tables.After setting up the database, update the connection Settings in the code to change the authentication information for your local database (these four variables are at the beginning of the code, around line 59, as follows); P.S. These authentication messages are called twice in the code (around 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 because the database authentication has gone wrong and the database needs to be properly created and the password entered.
This error will also be reported if you do not have the mysql service started locally, so make sure your mysql service is started.
main.py
.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 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.data
folder, see -regn_mysql.sql
for setup.Since this project was done while I was learning YOLOv5 (quite a while ago), the main logic is concentrated in the main.py file. In other words, I didn’t modularize different functions, and I didn’t have a clear division of module structure. Now I want to divide it into modules, but I’m too lazy, ha ha :smile:. If you’re interested, you can modularize it so it’s clearer.
Acknowledgements
WeChat:AIGCSD
email: 2545197649@qq.com
Official Accounts:AI进修生
Track the GitHub star history of this project: