HivisionIDPhoto 旨在开发一种实用的证件照智能制作算法。
它利用一套完善的模型工作流程,实现对多种用户拍照场景的识别、抠图与证件照生成。
HivisionIDPhoto 可以做到:
- 轻量级抠图(仅需 CPU 即可快速推理)
- 根据不同尺寸规格生成不同的标准证件照、六寸排版照
- 美颜(waiting)
- 智能换正装(waiting)
HivisionIDPhotos的项目地址
- GitHub仓库:https://github.com/Zeyi-Lin/HivisionIDPhotos
- 在线Demo体验地址:https://swanhub.co/ZeYiLin/HivisionIDPhotos/demo
🔧 环境安装与依赖
- Python >= 3.7(项目主要测试在 python 3.10)
- onnxruntime
- OpenCV
- Option: Linux, Windows, MacOS
1. 克隆项目
git clone https://github.com/Zeyi-Lin/HivisionIDPhotos.git
cd HivisionIDPhotos
2. (重要)安装依赖环境
建议 conda 创建一个 python3.10 虚拟环境后,执行以下命令
pip install -r requirements.txt
3. 下载权重文件
在Release下载权重文件hivision_modnet.onnx
(24.7MB),存到根目录下。
🚀 运行 Gradio Demo
python app.py
运行程序将生成一个本地 Web 页面,在页面中可完成证件照的操作与交互。
🚀 Python 推理
1. 证件照制作
输入 1 张照片,获得 1 张标准证件照和 1 张高清证件照的 4 通道透明 png
python inference.py -i images/test.jpg -o ./idphoto.png -s '(413,295)'
2. 增加底色
输入 1 张 4 通道透明 png,获得 1 张增加了底色的图像)
python inference.py -t add_background -i ./idphoto.png -o ./idhoto_ab.jpg -c '(0,0,0)' -k 30
3. 得到六寸排版照
输入 1 张 3 通道照片,获得 1 张六寸排版照
python inference.py -t generate_layout_photos -i ./idhoto_ab.jpg -o ./idhoto_layout.jpg -s '(413,295)' -k 200
⚡️ 部署 API 服务
API 文档:Python | RestAPI(waiting)
启动后端
python deploy_api.py
请求 API 服务 - Python
1. 证件照制作
输入 1 张照片,获得 1 张标准证件照和 1 张高清证件照的 4 通道透明 png
python requests_api.py -u http://127.0.0.1:8080 -i images/test.jpg -o ./idphoto.png -s '(413,295)'
2. 增加底色
输入 1 张 4 通道透明 png,获得 1 张增加了底色的图像
python requests_api.py -u http://127.0.0.1:8080 -t add_background -i ./idphoto.png -o ./idhoto_ab.jpg -c '(0,0,0)' -k 30
3. 得到六寸排版照
输入 1 张 3 通道照片,获得 1 张六寸排版照
python requests_api.py -u http://127.0.0.1:8080 -t generate_layout_photos -i ./idhoto_ab.jpg -o ./idhoto_layout.jpg -s '(413,295)' -k 200
🐳 Docker 部署
1. 拉取或构建镜像
以下方式三选一
拉取镜像:
该镜像构建于 ARM 架构机器(如 Mac M1),x86 架构机器使用请用 Dockerfile 构建
用这种方式的,在第 2 步开始把镜像名hivision_idphotos
改为linzeyi/hivision_idphotos
docker pull linzeyi/hivision_idphotos:v1
Dockrfile 构建镜像:
在确保将模型权重文件hivision_modnet.onnx放到根目录下后,在根目录执行:
docker build -t hivision_idphotos .
Docker compose:
确保将模型权重文件 hivision_modnet.onnx 放在根目录下后,在根目录下执行:
docker compose build
镜像打包完成后,运行以下命令启动 Gradio 服务:
docker compose up -d
2. 运行 Gradio Demo
等待镜像封装完毕后,运行以下指令,即可开启 Gradio Demo 服务:
docker run -p 7860:7860 hivision_idphotos
在你的本地访问http://127.0.0.1:7860即可使用。
3. 运行 API 后端服务
现在docker镜像可能需要科学上网
docker run -p 8080:8080 hivision_idphotos python3 deploy_api.py