HivisionIDPhoto 致力于开发一种实用的证件照智能制作算法,利用一套完善的模型工作流程,实现对多种用户拍照场景的识别、抠图与证件照生成。本文将介绍其主要功能、安装与依赖环境以及如何运行和部署 API 服务。
功能介绍
HivisionIDPhoto 可以做到以下几点:
- 轻量级抠图:快速、精准地识别并抠取人物图像。
- 证件照生成:根据不同尺寸规格生成标准证件照和六寸排版照。
- 美颜(功能待开发):提供自动美颜功能。
- 智能换正装(功能待开发):为照片中的人物智能换上正装。
环境安装与依赖
Python 版本要求: Python >= 3.7(项目主要测试在 Python 3.10)
依赖包:
- onnxruntime
- OpenCV
- 操作系统:Linux, Windows, MacOS
1. 克隆项目
git clone https://github.com/Zeyi-Lin/HivisionIDPhotos.git
cd HivisionIDPhotos
2. 安装依赖环境
pip install -r requirements.txt
3. 下载权重文件
在我们的 Release 下载权重文件hivision_modnet.onnx
,存到根目录下。
运行 Gradio Demo
运行以下命令生成一个本地 Web 页面,在页面中可完成证件照的操作与交互:
python app.py
部署 API 服务
运行以下命令开启 API 服务:
python deploy_api.py
请求 API 服务(Python):
证件照制作
输入 1 张照片,获得 1 张标准证件照和 1 张高清证件照的 4 通道透明 png:
python requests_api.py -u http://127.0.0.1:8080 -i test.jpg -o ./idphoto.png -s '(413,295)'
增加底色
输入 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)'
得到六寸排版照
输入 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)'
Docker 部署
在确保将模型权重文件 hivision_modnet.onnx
放到根目录下后,在根目录执行:
docker build -t hivision_idphotos .
等待镜像封装完毕后,运行以下指令,即可开启 API 服务:
docker run -p 8080:8080 hivision_idphotos
正文完
发表至: 每日技术
2024-09-02