# course design **Repository Path**: liu-r-ui/course-design ## Basic Information - **Project Name**: course design - **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 # UNet 离线图像抠图工具 README ## 一、项目简介 本项目基于 PyTorch 实现轻量化 UNet 语义分割网络,开发一套本地离线批量抠图工具,无需联网、无付费限制,在普通 Windows 笔记本 CPU 环境即可运行。 针对电商商品、静物、动物实拍图完成自动背景去除,输出带 Alpha 透明通道的 PNG 图片,解决在线抠图平台隐私泄露、手动 PS 抠图效率低的痛点。 项目使用 800 组图像分割数据集完成 20 轮完整训练,内置掩码形态学优化,细小物体、复杂边缘分割效果良好。 ## 二、项目目录结构 plaintext txkeshe/ ├── .idea/ # PyCharm工程配置文件夹 ├── datasets/ # 存放测试用实拍图片 ├── U2NET_800/ # 训练数据集根目录 │ ├── images/ # 训练原图,jpg格式 │ └── masks/ # 对应标注掩码,png格式 ├── models/ # 训练生成权重文件目录 │ └── my_unet_ep20.pth # 20轮训练完成模型权重 ├── unet_optimized_result/# 批量抠图输出透明PNG文件夹 ├── main.py # UNet模型20轮完整训练代码 ├── predict.py # 批量图片抠图推理代码 ├── make_800.py # 数据集预处理辅助脚本 ## 三、环境依赖 1. 运行系统 Windows 10 / Windows 11 64 位(适配华为 MateBook 笔记本) 2. Python 版本 Python 3.8 ~ 3.9 3. 所需第三方库 `pip install torch torchvision pillow numpy opencv-python` ## 四、数据集说明 - 训练数据集共 800 组配对样本; - 原图存放于U2NET_800/images,后缀为.jpg; - 掩码标注存放于U2NET_800/masks,后缀为.png; - 文件命名规则:除后缀外文件名完全一致(如test01.jpg对应test01.png); - 代码内置自动剥离后缀匹配逻辑,解决 jpg/png 后缀不匹配找不到文件问题; - 训练启动前自动校验全部配对,缺失掩码样本自动过滤并打印清单。 ## 五、模型训练操作 前置准备 1. 完整放置 800 组原图 + 掩码数据集; 2. 笔记本全程连接电源,关闭 Windows 自动休眠、合盖睡眠; 3. 华为电脑管家关闭智能省电模式,切换至最佳性能; 4. 关闭浏览器、视频、杀毒等高占用后台程序。 启动训练 1. 直接运行main.py,程序自动执行: 2. 数据集配对校验,输出缺失掩码清单; 3. 加载有效 800 组样本,每轮 400 个 Batch; 4. 循环训练 20 个 Epoch,每 10 个 Batch 打印损失值; 5. 20 轮全部训练完成后,自动保存权重至models/my_unet_ep20.pth。 训练时长说明 纯 CPU 环境,单轮训练约 28~30 分钟,20 轮完整训练总耗时 9.5~10 小时,支持夜间挂机运行。 排错说明 - 报错FileNotFound:原图与掩码文件名不匹配,程序预过滤自动丢弃缺失样本; - 递归深度溢出:代码已重构,移除递归跳转,提前过滤全部有效样本,杜绝死循环报错。 ## 六、批量抠图推理操作 1. 将待抠图素材放入datasets/my_test/images; 2. 直接运行predict.py; 3. 程序自动加载 20 轮训练权重,批量处理全部图片; 4. 处理完成的透明背景 PNG 素材自动输出至unet_optimized_result; 5. 内置掩码后处理:阈值过滤、形态学去噪、高斯平滑,优化物体边缘锯齿与空洞。 ## 七、功能特性 - 离线本地运行:无网络请求,保护图片素材隐私; - 低硬件适配:仅依赖 CPU,8G 内存普通笔记本稳定运行; - 批量自动处理:一键批量抠图,自动跳过损坏、异常图片; - 多场景适配:支持商品挂件、零食、动物、静物等实拍素材分割; - 鲁棒容错机制:数据集缺失文件、损坏图片自动跳过,不会中断程序; - 边缘优化:掩码平滑处理,保留细小链条、毛发等精细结构。 ## 八、性能指标 - 单张 1080P 图片 CPU 推理耗时:2~3 秒; - 程序空载内存占用:≤250MB,峰值内存≤340MB; - 20 轮训练损失持续收敛,对比 10 轮模型细小物体分割缺陷显著减少; - 输出标准 RGBA 透明 PNG 文件,可直接用于 PPT、PS、自媒体设计。 ## 九、项目不足与优化方向 现存缺陷 - 训练数据集仅 800 组小规模样本,复杂半透明物体分割存在瑕疵; - 仅支持命令行脚本运行,无可视化 GUI 界面,操作门槛较高; - CPU 推理速度较慢,大批量图片处理耗时较长。 后续优化方案 - 扩充数据集样本量,提升复杂场景分割精度; - 开发可视化图形操作界面,降低使用门槛; - 支持 NVIDIA GPU 加速,大幅缩短训练与推理耗时; - 增加自定义输出格式、批量尺寸缩放功能。 十、使用注意事项 - 项目文件夹路径、图片文件名禁止中文,避免读取失败; - 夜间挂机训练必须插电,关闭系统自动更新防止电脑重启中断训练; - 训练完成后使用predict.py时,请勿修改权重文件名称与存放路径; - 笔记本长时间训练垫高底部,保证散热,防止高温降速。