HivisionIDPhotos是一款简单易用的 AI 证件照制作工具,能够生成标准证件照和六寸排版照。它提供了简洁的 Web 界面和 API 服务,即使在没有 GPU 的电脑上也能够运行,支持抠图、尺寸调整和自定义底色等功能。
主要功能
- 轻量级抠图(纯离线,仅需 CPU 即可快速推理)
- 根据不同尺寸规格生成不同的标准证件照、六寸排版照
- 支持 纯离线 或 端云 推理
- 美颜(waiting)
- 智能换正装(waiting)
开始使用
🔧 准备工作
环境安装与依赖:
- Python >= 3.7(项目主要测试在 python 3.10)
- OS: Linux, Windows, MacOS
1. 克隆项目
git clone https://github.com/Zeyi-Lin/HivisionIDPhotos.git
cd HivisionIDPhotos
2. 安装依赖环境
建议 conda 创建一个 python3.10 虚拟环境后,执行以下命令
pip install -r requirements.txt
pip install -r requirements-app.txt
3. 下载权重文件
方式一:脚本下载
python scripts/download_model.py --models all
方式二:直接下载
存到项目的hivision/creator/weights
目录下:
modnet_photographic_portrait_matting.onnx
(24.7MB): MODNet官方权重,下载hivision_modnet.onnx
(24.7MB): 对纯色换底适配性更好的抠图模型,下载rmbg-1.4.onnx
(176.2MB): BRIA AI 开源的抠图模型,下载后重命名为rmbg-1.4.onnx
birefnet-v1-lite.onnx
(224MB): ZhengPeng7 开源的抠图模型,下载后重命名为birefnet-v1-lite.onnx
4. 人脸检测模型配置(可选)
拓展人脸检测模型 | 介绍 | 使用文档 |
---|---|---|
MTCNN | 离线人脸检测模型,高性能CPU推理,为默认模型,检测精度较低 | Clone此项目后直接使用 |
Face++ | 旷视推出的在线人脸检测API,检测精度较高,官方文档 | 使用文档 |
5. GPU推理加速(可选)
如需使用英伟达GPU加速推理,在确保你已经安装CUDA与cuDNN后,根据文档找到对应的onnxruntime-gpu
版本安装,如:
# CUDA 12.x, cuDNN 8
pip install onnxruntime-gpu==1.18.0
完成后,调用如birefnet-v1-lite
模型将会利用GPU加速推理。
🚀 运行 Gradio Demo
python app.py
运行程序将生成一个本地 Web 页面,在页面中可完成证件照的操作与交互。
🚀 Python 推理
核心参数:
-i
: 输入图像路径-o
: 保存图像路径-t
: 推理类型,有idphoto、human_matting、add_background、generate_layout_photos可选--matting_model
: 人像抠图模型权重选择--face_detect_model
: 人脸检测模型选择
更多参数可通过python inference.py --help
查看
1. 证件照制作
输入 1 张照片,获得 1 张标准证件照和 1 张高清证件照的 4 通道透明 png
python inference.py -i demo/images/test.jpg -o ./idphoto.png --height 413 --width 295
2. 人像抠图
python inference.py -t human_matting -i demo/images/test.jpg -o ./idphoto_matting.png --matting_model hivision_modnet
3. 透明图增加底色
输入 1 张 4 通道透明 png,获得 1 张增加了底色的图像)
python inference.py -t add_background -i ./idphoto.png -o ./idphoto_ab.jpg -c 4f83ce -k 30 -r 1
4. 得到六寸排版照
输入 1 张 3 通道照片,获得 1 张六寸排版照
python inference.py -t generate_layout_photos -i ./idphoto_ab.jpg -o ./idphoto_layout.jpg --height 413 --width 295 -k 200
⚡️ 部署 API 服务
启动后端
python deploy_api.py
请求 API 服务
详细请求方式请参考 API 文档,包含以下请求示例: