前端:
https://github.com/rkun0068/rddc_frontend
后端:
https://github.com/rkun0068/rddc_backend
系统架构
Docker部署minio对象存储
$ mkdir -p ~/minio/data
$ docker pull minio/minio
$ docker run \
-p 9000:9000 \
-p 9001:9001 \
--name minio1 \
-v ~/minio/data:/data \
-e "MINIO_ROOT_USER=minioadmin" \
-e "MINIO_ROOT_PASSWORD=minioadmin" \
minio/minio server /data --console-address ":9001"
访问服务http://127.0.0.1:9001/ 创建存储桶 stroage
Docker部署Mysql数据库服务
$ docker pull mysql
$ docker run -d --name mysql-container -e MYSQL_ROOT_PASSWORD=your_password -p 3306:3306 mysql
然后使用Mysql创建数据库road_detection
创建数据表
-- road_detection.detection_result definition
CREATE TABLE `detection_result` (
`id` int NOT NULL AUTO_INCREMENT,
`img_url` text,
`result` text,
`created` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1101 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
实现功能
图片上传/检测
- 点击上传单个或多个图像
- 上传的图片会被存储在MinIO提供的对象存储桶里
- 点击检测,后端利用模型进行检测并生成新图片替换掉源图片
- 处理完成后会跳转到数据展示页面
历史数据查看
- 可以查看每次检测的图片数据,使用JSON格式化展示
视频上传/检测
- 点击直接上传视频
- 点击检测进行检测,检测完成后会自动跳转到检测视频播放页面
实时检测
- 使用电脑摄像头,按Q进行退出
相关代码信息
后端
|-- __pycache__ # Python 编译缓存文件目录,包含已编译的 Python 文件
|-- api # Django APP
|-- config.py # 外部资源配置信息 (mysql,minio)等
|-- manage.py # Django 项目管理脚本,用于执行不同的 Django 命令
|-- model # Django APP
|-- newModel.pt # 训练好的道路病害检测模型 (可替换为其他)
|-- requirements.txt # 项目的依赖文件,包含项目所需的 Python 包及其版本信息
|-- road_detection # Django 项目的主目录,包含项目的设置和配置等文件
启动后端
python -m venv venv
venv\Scripts\activate # Windows
pip install -r requirements.txt
python manage.py runserver
启动前端
npm install
npm run dev