AI证件照,抠图、换背景、任意尺寸...有了这个神器,证件照通通自己搞定(本地化部署教程)

2024-09-08 12:28:59 浏览数 (2)

最近有个Github开源的AI证件照神器火了,以后再也不用专门跑一趟照相馆拍证件照了!

你随手一张日常生活照或自拍,上传到它那里,分分钟就能帮你换上。

蓝底、白底,抠掉杂乱的背景,生成各种尺寸规格的证件照

这款名叫HivisionIDPhotos的开源工具,它不仅能帮你便捷地制作出免冠白底照、蓝底照,登记照等不同类型的证件照,还支持多种常用的尺寸规格,小到1寸、大到6寸应有尽有。

想用它制作考公、考教资、四六级考试等用途的照片,通通都能满足

除了能"万能"换背景,HivisionIDPhotos还自带轻量级抠图功能,哪怕你上传的原始照片背景有些complex,它也能利用强大的AI算法,为你提取出干净利落的人像。同时,它还很贴心地提供了供六寸照打印用的排版照片,让你打印起来更加方便。

重要的是,它完全开源免费。无论你是WindowsLinux还是MacOS系统,都可以非常便捷地在本地部署运行,项目作者还贴心提供了基于FastAPI框架的API服务和Docker部署脚本。哪怕是毫无代码基础的小白,也能轻轻松松上手使用。项目主页的Demo体验链接更是省去了本地部署的麻烦,传张照片就能直接在线尝鲜。

HivisionIDPhotos 相关链接

  1. Github 开源地址:https://github.com/Zeyi-Lin/HivisionIDPhotos
  2. 预览地址:https://swanhub.co/ZeYiLin/HivisionIDPhotos/demo

本地化部署

本教程将指导你如何在本地环境中部署和运行 HivisionIDPhotos 项目。你可以选择直接在本机上安装依赖并运行,或者使用我们提供的 Docker 镜像进行快速部署。

方式一:本地环境部署

环境要求

  • Python >= 3.7(推荐使用 Python 3.10)
  • 操作系统:支持 Linux、Windows、macOS

步骤

克隆项目代码

代码语言:javascript复制
git clone https://github.com/Zeyi-Lin/HivisionIDPhotos.git
cd HivisionIDPhotos

如果项目拉取比较慢的话,可以通过gitee,gitcode 等工具通过导入仓库拉取项目。

创建并激活虚拟环境

首先,使用以下命令创建一个名为 hivision 的 Python 3.10 虚拟环境:

代码语言:javascript复制
# 创建一个名为 `hivision` 的虚拟环境,并指定 Python 版本为 3.10
conda create -n hivision python=3.10
# 激活虚拟环境
conda activate hivision

安装依赖库

代码语言:javascript复制
 pip install -r requirements.txt -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple
pip install -r requirements-app.txt -i https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple

下载模型权重文件

从 Release 页面下载模型权重文件 hivision_modnet.onnx(约 24.7MB),将其放到项目的 hivision/creator/weights 目录下,这里我们直接使用wget 命令来下载模型

代码语言:javascript复制
wget -P hivision/creator/weights https://github.com/Zeyi-Lin/HivisionIDPhotos/releases/download/pretrained-model/hivision_modnet.onnx https://github.com/Zeyi-Lin/HivisionIDPhotos/releases/download/pretrained-model/modnet_photographic_portrait_matting.onnx

如果下载比较慢的话,请使用如下命令:

代码语言:javascript复制
wget -P hivision/creator/weights https://gh-proxy.com/https://github.com/Zeyi-Lin/HivisionIDPhotos/releases/download/pretrained-model/hivision_modnet.onnx https://gh-proxy.com/https://github.com/Zeyi-Lin/HivisionIDPhotos/releases/download/pretrained-model/modnet_photographic_portrait_matting.onnx

运行 Gradio Demo

代码语言:javascript复制
python app.py

程序将启动一个本地 Web 服务,你可以通过生成的 URL 在浏览器中访问并使用该应用。

然后就可以快乐的玩耍了

进行证件照推理(可选)

你也可以直接使用 Python 脚本进行推理,根据需求执行以下命令:

证件照制作:

代码语言:javascript复制
python inference.py -i demo/images/test.jpg -o ./idphoto.png --height 413 --width 295

添加背景色:

代码语言:javascript复制
python inference.py -t add_background -i ./idphoto.png -o ./idphoto_ab.jpg -c 000000 -k 30 

生成六寸排版照:

代码语言:javascript复制
python inference.py -t generate_layout_photos -i ./idphoto_ab.jpg -o ./idphoto_layout.jpg --height 413 --width 295 -k 200

方式二:Docker 部署

拉取 Docker 镜像

镜像拉取方式二选一:

从 Docker Hub 直接拉取:

代码语言:javascript复制
docker pull linzeyi/hivision_idphotos:v1
docker tag linzeyi/hivision_idphotos:v1 hivision_idphotos

从阿里云镜像仓库拉取(国内加速):

代码语言:javascript复制
docker pull registry.cn-hangzhou.aliyuncs.com/swanhub/hivision_idphotos:v1 
docker tag registry.cn-hangzhou.aliyuncs.com/swanhub/hivision_idphotos:v1 hivision_idphotos

运行 Gradio Demo

代码语言:javascript复制
docker run -p 7860:7860 hivision_idphotos

然后你可以在浏览器中访问 http://localhost:7860 来使用该应用。

部署 API 服务

如果你希望部署该项目的 API 服务,可以执行以下步骤:

启动 API 服务

本地环境下运行:

代码语言:javascript复制
python deploy_api.py

在 Docker 环境中运行:

代码语言:javascript复制
docker run -p 8080:8080 hivision_idphotos python3 deploy_api.py

请求 API

API 的请求方式请参考项目提供的 API 文档,里面包含了使用 cURL、Python、Java、JavaScript 等语言进行请求的示例。

希望通过以上步骤,你可以顺利地在本地部署好 HivisionIDPhotos 项目。如果在部署过程中遇到任何问题,可以向开发者反馈,祝你使用愉快!

0 人点赞