littlebot
Published on 2025-04-16 / 0 Visits
0

【源码】基于 PyTorch 框架的人行道图像语义分割系统

项目简介

本项目借助 PyTorch 实现 U-Net 语义分割模型,针对 Hugging Face 社区的人行道图像语义分割数据集开展语义分割任务,以平均交并比(MIoU)作为分割结果的评价指标。

项目的主要特性和功能

  1. 数据处理:把 1000 张图像按 7:1:2 的比例随机划分成训练、验证和测试集,采用标准化预处理,利用随机裁剪和水平翻转进行数据增强。
  2. 模型架构:采用经典 U-Net 架构,包含收缩路径和拓展路径,通过卷积、池化、转置卷积等操作完成特征提取与融合。
  3. 训练策略:训练总步数为 6000 步,每 100 步进行一次验证,保存验证集 MIoU 分数最高的权重参数;运用 AdamW 优化器和 OneCycle 学习率调度策略。
  4. 推理策略:采用 Overlap-tile 策略将原图填充并切分进行推理,最后拼接成完整分割图。
  5. 实验分析:探究输入图像大小对分割效果的影响,并与 Hugging Face 社区上其他微调后的模型进行对比。

安装使用步骤

环境配置

确保 Python 版本为 3.9.16,安装以下 Python 模块及其对应版本: albumentations 1.3.0 matplotlib 3.7.1 numpy 1.24.2 Pillow 9.4.0 tensorboard 2.12.1 torch 1.13.1 torchvision 0.14.1 tqdm 5.7.1 此代码也在 python 3.7.6 和 torch 1.8.1 环境下测试通过。

数据准备

运行 prepare_data.ipynb 的第一个代码单元格,下载完整数据集。

模型训练

  • Linux 环境:可直接执行 run.sh 脚本。
  • 通用方式:使用以下命令进行训练: bash python main.py \ --data_path "./data/sidewalk-semantic" \ --input_size 724 \ --batch_size 16 \ --total_steps 4000 \ --eval_steps 100 \ --learning_rate 0.0005 \ --output_path "./output"

模型推理和测试

使用 tester.py 对训练好的模型进行推理和测试。

结果可视化

使用 visualization.py 对分割结果进行可视化展示。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】