HivisionIDPhotos
“
一个轻量级且高效的AI证件照制作工具,利用AI模型工作流程实现多种拍照场景的证件照生成,支持轻量级抠图、多种尺寸证件照生成、纯离线或端云推理等功能。
Github地址
https://github.com/Zeyi-Lin/HivisionIDPhotos
在线体验
https://huggingface.co/spaces/TheEeeeLin/HivisionIDPhotos
项目特点
-
轻量级抠图:仅需CPU即可快速推理。
-
多样化生成:可生成标准证件照、六寸排版照等。
-
推理方式灵活:支持纯离线或端云推理。
-
美颜功能:支持证件照美颜。
-
智能换正装:该功能正在开发中。
使用方法
准备工作
环境要求:
-
Python >= 3.7(建议使用Python 3.10)。
-
支持的操作系统:Linux、Windows、MacOS。
克隆项目:
gitclonehttps://github.com/Zeyi-Lin/HivisionIDPhotos.git
cdHivisionIDPhotos
安装依赖:
pip install -r requirements.txt
pip install -r requirements-app.txt
下载模型权重文件:
-
使用脚本下载:
python scripts/download_model.py --models all -
或手动下载并放置到
hivision/creator/weights目录下。
人脸检测模型配置(可选):
-
默认使用MTCNN模型。
-
可选RetinaFace模型,需下载权重文件并放置到
hivision/creator/retinaface/weights目录下。 -
也可使用Face++的在线API,需配置API密钥。
运行Gradio Demo
-
运行命令:
python app.py -
访问本地Web页面(如
http://127.0.0.1:7860)进行证件照操作与交互。
Python推理
-
核心参数:
-
-i:输入图像路径。 -
-o:保存图像路径。 -
-t:推理类型(如idphoto、human_matting等)。 -
--matting_model:人像抠图模型权重选择。 -
--face_detect_model:人脸检测模型选择。 -
示例命令:
-
制作证件照:
python inference.py -i demo/images/test0.jpg -o ./idphoto.png --height 413 --width 295 -
人像抠图:
python inference.py -t human_matting -i demo/images/test0.jpg -o ./idphoto_matting.png --matting_model hivision_modnet
部署API服务
-
启动后端:
python deploy_api.py -
请求API服务:参考
docs/api_CN.md文档。
Docker部署
-
拉取或构建镜像:
-
拉取最新镜像:
docker pull linzeyi/hivision_idphotos -
使用Dockerfile构建镜像:
docker build -t linzeyi/hivision_idphotos . -
使用docker-compose构建:
docker compose build -
运行服务:
-
启动Gradio Demo服务:
docker run -d -p 7860:7860 linzeyi/hivision_idphotos -
启动API后端服务:
docker run -d -p 8080:8080 linzeyi/hivision_idphotos python3 deploy_api.py -
同时启动两个服务:
docker compose up -d
性能参考
-
测试环境:Mac M1 Max 64GB,非GPU加速。
-
测试图片分辨率:512x715(1)与764x1146(2)。
-
模型组合及性能:
-
MODNet + mtcnn:内存占用410MB,推理时长(1)为0.207s,推理时长(2)为0.246s。
-
MODNet + retinaface:内存占用405MB,推理时长(1)为0.571s,推理时长(2)为0.971s。
-
birefnet-v1-lite + retinaface:内存占用6.20GB,推理时长(1)为7.063s,推理时长(2)为7.128s。