商品图片全链路精修流水线,专为服装/产品电商场景设计。
执行顺序:调整尺寸 → AI 去背景 → 颜色分析精修廓形(去除衣架、道具等非衣物元素) → 白色背景填充 → 压缩至目标大小。
执行前确保 Python 虚拟环境中已安装以下依赖:
pip install Pillow scipy onnxruntime requests
首次运行去背景步骤时,脚本会自动从 hf-mirror 下载 U2Net ONNX 模型(约 176MB)到 ~/.u2net/u2net.onnx。
python scripts/product_image_refine.py <图片路径> [--size 400] [--max_kb 100]
python scripts/product_image_refine.py <目录路径> --size 400 --max_kb 100
目录下所有 .png/.jpg/.jpeg/.bmp/.webp/.gif 文件都会被处理,原地覆盖保存。
| 参数 | 默认值 | 说明 |
|------|--------|------|
| input | (必填) | 图片文件路径或目录路径 |
| --size | 400 | 目标尺寸(正方形,如 400 表示 400x400) |
| --max_kb | 100 | 压缩后最大文件大小(KB) |
等比缩放图片到目标尺寸,不足部分用白色填充,居中放置。
保持图片原始宽高比不变形。
使用 U2Net ONNX 模型进行语义分割,识别前景物体并去除背景。
模型输入 320x320 RGB,输出前景 mask,阈值 0.5。
需要网络连接下载模型(首次运行),后续使用缓存。
基于 HSV 颜色空间分析前景像素:
对保留的衣物像素做连通区域分析,只保留面积最大的主体区域,然后通过形态学运算(膨胀→腐蚀→闭运算→开运算)平滑边缘。
将 RGBA 透明图像合成到纯白背景上,转换为 RGB 格式。
裁剪内容边界框后缩放回目标尺寸居中放置。
输出统一为 JPEG 格式,逐步降低质量(从 95 到 40),直到满足大小要求。
输出文件扩展名统一为 .jpg,原文件(如 .png)会被自动删除。
共 1 个版本