智能证件照制作神器 ——HivisionIDPhoto

在当今数字化时代,证件照的需求无处不在。而 HivisionIDPhoto 项目的出现,为我们带来了一种全新的、便捷的证件照制作方式。

项目介绍

HivisionIDPhoto 是一个轻量级的 AI 证件照制作算法,它具有以下强大功能:

1.智能识别与抠图:能够识别多种用户拍照场景,并进行精准的抠图操作。

2.多种证件照生成:可以根据不同尺寸规格生成标准证件照和六寸排版照。

3.美颜功能(待开发):未来将提供美颜功能,让您的证件照更加出色。

4.智能换正装(待开发):期待后续能实现智能换正装的功能,满足更多需求。

该项目的优势在于其轻量级的特点,以及完善的模型工作流程,能够高效地完成证件照的制作。

安装使用

使用 HivisionIDPhoto 非常简单,只需按照以下步骤进行操作:

1.环境安装与依赖:

  • Python >= 3.7(项目主要测试在 python 3.10)。

  • 安装 onnxruntime、OpenCV 等依赖。

  • 克隆项目并进入目录。

  • 安装依赖环境:pip install -r requirements.txt。

  • 通过Github发布页下载权重文件 hivision_modnet.onnx 并存到根目录下。

2.运行 Gradio Demo:

运行 python app.py,将生成一个本地 Web 页面,在页面中可完成证件照的操作与交互。

3.部署 API 服务:

运行python deploy_api.py

4.请求 API 服务(Python):

证件照制作:

python requests_api.py -u http://127.0.0.1:8080 -i test.jpg -o./idphoto.png -s '(413,295)'

增加底色:

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)'

得到六寸排版照:

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)'

此外,HivisionIDPhoto 还支持 Docker 部署,确保将模型权重文件放到根目录下后,执行以下命令即可开启 API 服务:

#在确保将模型权重文件hivision_modnet.onnx放到根目录下后,在根目录执行:
docker build -t hivision_idphotos.
docker run -p 8080:8080 hivision_idphotos

HivisionIDPhoto 项目引用了 MTCNN 和 ModNet 等相关技术,不断优化和提升自身性能。

如果您对这个项目感兴趣,不妨亲自尝试一下,让 HivisionIDPhoto 为您解决证件照应急制作的问题!

使用

可通过在线demo体验该项目。

项目地址

https://github.com/Zeyi-Lin/HivisionIDPhotos

智能证件照制作神器 ——HivisionIDPhoto - BTool博客 - 在线工具软件,为开发者提供方便 

OpenCV是一个广泛用于计算机视觉任务的强大库,它在Python中尤其受欢迎。要利用OpenCV制作智能证件照,可以按照以下步骤进行: 1. **人脸检测**:首先,你需要安装如`face_recognition`或`dlib`这样的库来进行人脸检测。它们包含了预训练的人脸检测模型,例如Haar cascades分类器或者MTCNN(Multi-Task Cascaded Convolutional Networks),可以在图片或视频帧中找到人脸位置。 ```python import cv2 import face_recognition # 加载图像 img = cv2.imread('input.jpg') gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) faces = face_recognition.face_locations(gray) ``` 2. **自动人像分割**:定位到人脸后,可以使用OpenCV的边缘检测算法(如Canny或GrabCut)将背景和人脸分离出来。对于复杂的背景去除,可以尝试使用更高级的技术,如基于深度学习的实例分割模型(比如Mask R-CNN)。 3. **调整尺寸**:创建模板尺寸,通常证件照需要固定的大小和比例,例如35mm*45mm。然后,你可以使用`cv2.resize()`函数对人脸裁剪并调整至适当大小。 4. **添加边框和背景**:确定好证件照的基本布局后,可以添加边框、背景颜色以及必要的文字信息(如姓名、性别等)。 ```python # 创建白色背景 blank = np.zeros((height, width, 3), dtype="uint8") # 添加边框和文字 border_color = (255, 255, 255) cv2.rectangle(blank, ... , border_color) cv2.putText(blank, "姓名", ..., fontFace=cv2.FONT_HERSHEY_SIMPLEX, color=(0, 0, 0), thickness=2) # 合并前景和背景 output = cv2.bitwise_and(blank, blank, mask=mask) result = cv2.add(output, img) ``` 5. **保存结果**:最后,使用`cv2.imwrite()`保存处理后的证件照片。 ```python cv2.imwrite("output.jpg", result) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

开源前锋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值