最近有个Github
开源的AI
证件照神器火了,以后再也不用专门跑一趟照相馆拍证件照了!
你随手一张日常生活照或自拍,上传到它那里,分分钟就能帮你换上。
蓝底、白底,抠掉杂乱的背景,生成各种尺寸规格的证件照。
这款名叫HivisionIDPhotos
的开源工具,它不仅能帮你便捷地制作出免冠白底照、蓝底照,登记照等不同类型的证件照,还支持多种常用的尺寸规格,小到1寸、大到6寸应有尽有。
想用它制作考公、考教资、四六级考试等用途的照片,通通都能满足。
除了能"万能"换背景,HivisionIDPhotos
还自带轻量级抠图功能,哪怕你上传的原始照片背景有些complex
,它也能利用强大的AI
算法,为你提取出干净利落的人像。同时,它还很贴心地提供了供六寸照打印用的排版照片,让你打印起来更加方便。
重要的是,它完全开源免费。无论你是Windows
、Linux
还是MacOS
系统,都可以非常便捷地在本地部署运行,项目作者还贴心提供了基于FastAPI
框架的API
服务和Docker
部署脚本。哪怕是毫无代码基础的小白,也能轻轻松松上手使用。项目主页的Demo
体验链接更是省去了本地部署的麻烦,传张照片就能直接在线尝鲜。
HivisionIDPhotos 相关链接
- Github 开源地址:
https://github.com/Zeyi-Lin/HivisionIDPhotos
- 预览地址:
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 虚拟环境:
# 创建一个名为 `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 命令来下载模型
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 项目。如果在部署过程中遇到任何问题,可以向开发者反馈,祝你使用愉快!