首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【AI落地应用实战】HivisionIDPhotos AI证件照制作实践指南

【AI落地应用实战】HivisionIDPhotos AI证件照制作实践指南

原创
作者头像
中杯可乐多加冰
发布2024-11-13 13:10:44
发布2024-11-13 13:10:44
81000
代码可运行
举报
运行总次数:0
代码可运行

2024好事发生

这里我要推荐的【好事】文章是《深度学习入门指南:一篇文章全解》,在科技日新月异的今天,深度学习的应用越加广泛,引领着智能技术的新一轮革命。本文将从以下四个方面:深度学习的背景历史、主要研究内容、重要分以及其在现实生活中的广泛应用,让读者简单认识一直广受关注的深度学习究竟是什么。

好事文章地址:深度学习入门指南:一篇文章全解

好了,开始今天的主题:

最近在网上发现了一款轻量级的AI证件照制作的项目,名为HivisionIDPhotos。它利用AI模型实现对多种拍照场景的识别、抠图与证件照生成,支持轻量级抠图、多种标准证件照和排版照生成、纯离线或端云推理、美颜等功能。此外,项目还提供了Gradio Demo交互页面和API服务,方便用户进行证件照的制作和自定义。

项目仓库:https://github.com/Zeyi-Lin/HivisionIDPhotos

本篇将介绍使用DAMODEL深度学习平台部署HivisionIDPhotos模型进行复现。

一、创建实例

本次实验选择了DAMODEL(丹摩智算)平台,致力于提供丰富的算力资源与基础设施助力AI应用的开发、训练、部署。首先进入控制台,,点击资源-GPU云实例,点击创建实例:

进入创建页面后,首先在实例配置中首先选择付费类型为按量付费,其次选择单卡启动,然后选择需求的GPU型号,本次实验可以选择选择NVIDIA-GeForc-RTX-4090或者Tesla-P40显卡。

除了这些以外,可以看到丹摩最近还上线了H800和A800显卡,A800基于NVIDIA的Ampere架构,而H800则是基于更新的Hopper架构。这两款显卡都具备强大的计算能力,高达80GB的显存能够处理复杂的数学模型和算法,支持深度学习模型的训练和推理,以及科学模拟、气候研究、基因组学等领域的高性能计算任务。

继续往下翻,配置数据硬盘的大小,每个实例默认附带了50GB的数据硬盘,本次创建可以就选择默认大小50GB,可以看到,平台提供了一些基础镜像供快速启动,镜像中安装了对应的基础环境和框架,这里选择PyTorch镜像启动。除此之外,平台还提供了ComfyUI、FLUX.1-dev-fp8+ComfyUI、yolov8镜像,适合初学者和专业人士使用。

二、配置代码和模型

2.1、配置代码与环境

首先输入git clone,将仓库代码克隆到本地,这里连接github可能偶尔不稳定,可以克隆gitee的仓库,两者内容相同:

代码语言:javascript
代码运行次数:0
运行
复制
git clone https://gitee.com/lipengfeiSUaz/HivisionIDPhotos.git

克隆完成后,进入项目文件夹,输入pip install -r requirements.txtpip install -r requirements-app.txt安装依赖环境:

2.2、下载模型

除了配置代码和安装环境外,还需要下载部分人像抠图模型的权重,下载好的模型均存到项目的hivision/creator/weights目录下,其中rmbg-1.4需要重命名为rmbg-1.4.onnx,birefnet-v1-lite需要重命名为birefnet-v1-lite.onnx

人像抠图模型

介绍

下载链接

MODNet

实时人像抠图模型,无需辅助信息

http://file.s3/damodel-openfile/HivisionIDPhotos/model.onnx

hivision_modnet

优化版MODNet,更适合纯色背景抠图

http://file.s3/damodel-openfile/HivisionIDPhotos/hivision_modnet.onnx

rmbg-1.4

BRIA AI开源的抠图模型,下载后重命名为rmbg-1.4.onnx

http://file.s3/damodel-openfile/HivisionIDPhotos/rmbg-1.4.onnx

birefnet-v1-lite

ZhengPeng7开源抠图模型,拥有最好的分割精度,下载后重命名为birefnet-v1-lite.onnx

http://file.s3/damodel-openfile/HivisionIDPhotos/birefnet-v1-lite.onnx

重命名后如下图所示:

配置以上步骤后,就可以开始使用了。

三、运行项目

项目的主函数在inference.py文件,其使用了argparse库来处理命令行参数,并根据参数执行不同的图像处理任务,提供了以下功能:

  • 证件照制作(idphoto):使用creator生成标准证件照和高清证件照,并保存。
  • 人像抠图(human_matting):仅抠图,不添加背景,保存抠图结果。
  • 添加背景(add_background):给图像添加背景色,并根据用户选择的渲染模式(纯色、上下渐变、中心渐变)进行处理,保存结果。
  • 生成排版照(generate_layout_photos):生成排版照,并根据需要调整图片大小。

我们可以直接通过Python运行脚本进行推理,其中,核心参数:

  • -i: 输入图像路径
  • -o: 保存图像路径
  • -t: 推理类型,有idphoto、human_matting、add_background、generate_layout_photos可选
  • –matting_model: 人像抠图模型权重选择
  • –face_detect_model: 人脸检测模型选择

更多参数也可通过python inference.py --help查看

3.1、证件照制作

证件照制作输入 1 张照片,输出 1 张标准证件照和 1 张高清证件照的 4 通道透明 png图片,可以输入以下命令运行:

代码语言:javascript
代码运行次数:0
运行
复制
python inference.py -i demo/images/test0.jpg -o ./idphoto.png --height 413 --width 295

其中,–height指定了证件照的高度为413像素。–width 295指定了证件照的宽度为295像素。随便试了两张,效果如下:

这一步可能会遇到以下问题:

代码语言:javascript
代码运行次数:0
运行
复制
Traceback (most recent call last):
  File "/root/workspace/crqfkuvhri0c7384uh6g/workspace/HivisionIDPhotos/inference.py", line 2, in <module>
    import cv2
  File "/root/anaconda3/envs/hidp/lib/python3.10/site-packages/cv2/__init__.py", line 181, in <module>
    bootstrap()
  File "/root/anaconda3/envs/hidp/lib/python3.10/site-packages/cv2/__init__.py", line 153, in bootstrap
    native_module = importlib.import_module("cv2")
  File "/root/anaconda3/envs/hidp/lib/python3.10/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
ImportError: libGL.so.1: cannot open shared object file: No such file or directory

这个报错表明在尝试找到 libGL.so.1 这个共享库文件出现了问题,输入以下命令,补充安装库文件再次运行就好了!

代码语言:javascript
代码运行次数:0
运行
复制
apt-get update
apt-get install ffmpeg libsm6 libxext6 -y

3.2、证件照换底色

除了透明图,模型还提供了将证件照换色,输入以下命令:

代码语言:javascript
代码运行次数:0
运行
复制
python inference.py -t add_background -i ./idphoto.png -o ./idphoto_ab.jpg  -c 4f83ce -k 30 -r 1

其中,-t add_background参数告诉脚本你想要执行的任务类型是“add_background”,即添加背景色。-c 4f83ce参数定义了你想要将证件照背景换成的颜色,在这里,4f83ce是RGB十六进制的颜色定义方式,如果需要蓝底、红底,可以根据需要调整代码。而-k 30参数指定了输出照片的文件最大大小,单位是KB。这里30表示你希望输出的证件照文件大小大约为30KB。-r 1参数选择了背景色的渲染模式。在这里,1代表“上下渐变”模式,背景色将从上到下渐变,而不是单一的纯色。

效果如下:

3.3、排版照(打印版)

当然,模型还提供了排版照,这种排版方式在需要批量制作证件照时非常有用,便于一次性打印多张照片,节省纸张和打印成本。

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

在这个命令中,-t generate_layout_photos参数指定了任务类型为生成排版照。这意味着脚本将执行生成排版照的相关操作。-k 200参数指定了输出照片的文件最大大小,单位是KB。

效果如下:

模型还在不断维护更新中,还有很多新功能值得探索!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、创建实例
  • 二、配置代码和模型
    • 2.1、配置代码与环境
    • 2.2、下载模型
  • 三、运行项目
    • 3.1、证件照制作
    • 3.2、证件照换底色
    • 3.3、排版照(打印版)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档