# fog pollution **Repository Path**: qyp2025/fog-pollution ## Basic Information - **Project Name**: fog pollution - **Description**: 图像处理课程设计 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-23 - **Last Updated**: 2026-06-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 雾霾图像二分类检测系统 ## 项目简介 本项目基于PyTorch深度学习框架,采用轻量化ResNet18残差网络实现户外实景图片**有无雾霾二分类识别**。项目完整包含数据集加载、数据增强、迁移学习模型训练、单张图片交互式预测、测试集批量统计验证全套功能,自动适配CPU/NVIDIA GPU运行,适用于物联网图像识别课程设计。 ## 项目目录结构 ![输入图片说明](https://foruda.gitee.com/images/1782211108075358626/c7eb4e6c_16226379.png "屏幕截图") ## 运行环境与依赖安装 ### 基础要求 - Python 3.8 ~ 3.11 - Windows 操作系统,支持NVIDIA GPU加速(无显卡自动使用CPU) ### 一键安装依赖 打开终端/CMD,进入项目根目录执行: ```bash pip install torch torchvision pillow tqdm numpy ``` 若使用项目内venv虚拟环境,需先激活虚拟环境再执行安装命令。 ## 数据集规范 1. 数据集存放于 fog_dataset 文件夹,层级不可修改; 2. train 文件夹必须划分两类子文件夹: no_smog:存放通透无雾霾户外图片 smog:存放薄雾、浓雾等含雾霾场景图片 3. test 文件夹直接放入任意待检测图片,无需分类; 4. 支持图片格式:.jpg、.png、.jpeg。 ### 脚本使用流程(必须按顺序执行) #### 模型训练(第一步优先运行) `python main.py` 核心功能: 1. 加载训练集,使用随机翻转、旋转、色彩抖动做数据增强,缓解过拟合; 2. 基于 ImageNet 预训练 ResNet18 迁移学习,替换输出层适配 2 分类任务; 3. 优化器选用 Adam,损失函数为交叉熵 CrossEntropyLoss; 4. 每 3 轮自动在 test 数据集验证精度,自动保存全局最优权重 smog_classify.pth; 5. 自动检测 CUDA 显卡,有 GPU 则开启硬件加速,无显卡切换 CPU 训练; 6. 自动过滤损坏、无法读取的图片,不会中断训练流程。 #### 单张图片交互式预测 - 训练生成smog_classify.pth权重文件后执行: `python predict.py` - 运行逻辑: 控制台输入图片本地路径,程序输出预测类别与置信度百分比; 输入 q / quit / exit 即可退出交互预测模式。 #### 测试集批量自动验证 `python verify_test.py` 自动遍历fog_dataset/test内全部图片批量推理,输出完整统计信息: - 测试集总图片数量 - 有雾霾 / 无雾霾样本数量与占比 - 每张图片文件名、预测类别、置信度明细汇总表格 ## 模型核心超参数 | 参数项 | 配置值 | | ------------------ | ----------------------- | | 骨干网络 | ResNet18 | | 输入图像尺寸 | 224 × 224 | | 批次大小 BatchSize | 16 | | 总训练轮数 EPOCHS | 15 | | 初始学习率 | 1e-4 | | 学习率衰减周期 | 每 5 轮衰减 50% | | 损失函数 | 交叉熵 CrossEntropyLoss | | 优化器 | Adam 自适应优化器 | ## 文件夹说明 - .idea:PyCharm 生成的工程配置文件,无代码逻辑; - venv:本地 Python 虚拟环境文件夹,体积较大,代码打包提交时可删除,运行时重新安装依赖即可; - smog_classify.pth:训练产出的模型权重,保留用于预测。 ### 常见运行问题排查 1. 报错找不到 fog_dataset 文件夹 确认根目录下文件夹名称为fog_dataset,大小写、拼写无错误; 2. 预测提示不存在 smog_classify.pth 先运行main.py完成训练,等待权重文件自动生成; 3. CPU 训练速度极慢 电脑配备 NVIDIA 独立显卡,安装 CUDA 版本 PyTorch 后程序自动启用 GPU 加速; 4. 预测置信度普遍偏低 扩充训练数据集,增加不同光照、不同雾霾浓度的实景样本; 5. 读取图片时报错损坏 程序内置容错机制,会自动跳过损坏图片,不中断训练 / 预测。