HivisionIDPhotos-证件照-免费开源的AI证件照制作工具

news/2024/9/19 11:14:27/ 标签: 开源, 人工智能

HivisionIDPhoto 旨在开发一种实用的证件照智能制作算法。

它利用一套完善的模型工作流程,实现对多种用户拍照场景的识别、抠图与证件照生成。

HivisionIDPhoto 可以做到:

  1. 轻量级抠图(仅需 CPU 即可快速推理)
  2. 根据不同尺寸规格生成不同的标准证件照、六寸排版照
  3. 美颜(waiting)
  4. 智能换正装(waiting)
    在这里插入图片描述

HivisionIDPhotos的项目地址

  • GitHub仓库:https://github.com/Zeyi-Lin/HivisionIDPhotos
  • 在线Demo体验地址:https://swanhub.co/ZeYiLin/HivisionIDPhotos/demo

🔧 环境安装与依赖

  • Python >= 3.7(项目主要测试在 python 3.10)
  • onnxruntime
  • OpenCV
  • Option: Linux, Windows, MacOS

1. 克隆项目

git clone https://github.com/Zeyi-Lin/HivisionIDPhotos.git
cd  HivisionIDPhotos

2. (重要)安装依赖环境

建议 conda 创建一个 python3.10 虚拟环境后,执行以下命令

pip install -r requirements.txt

3. 下载权重文件

在Release下载权重文件hivision_modnet.onnx (24.7MB),存到根目录下。

🚀 运行 Gradio Demo

python app.py

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

🚀 Python 推理

1. 证件照制作

输入 1 张照片,获得 1 张标准证件照和 1 张高清证件照的 4 通道透明 png

python inference.py -i images/test.jpg -o ./idphoto.png -s '(413,295)'

2. 增加底色

输入 1 张 4 通道透明 png,获得 1 张增加了底色的图像)

python inference.py -t add_background -i ./idphoto.png -o ./idhoto_ab.jpg  -c '(0,0,0)' -k 30

3. 得到六寸排版照

输入 1 张 3 通道照片,获得 1 张六寸排版照

python inference.py -t generate_layout_photos -i ./idhoto_ab.jpg -o ./idhoto_layout.jpg  -s '(413,295)' -k 200

⚡️ 部署 API 服务

API 文档:Python | RestAPI(waiting)

启动后端


python deploy_api.py

请求 API 服务 - Python

1. 证件照制作

输入 1 张照片,获得 1 张标准证件照和 1 张高清证件照的 4 通道透明 png

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

2. 增加底色

输入 1 张 4 通道透明 png,获得 1 张增加了底色的图像

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

3. 得到六寸排版照

输入 1 张 3 通道照片,获得 1 张六寸排版照

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

🐳 Docker 部署

1. 拉取或构建镜像

以下方式三选一

拉取镜像:

该镜像构建于 ARM 架构机器(如 Mac M1),x86 架构机器使用请用 Dockerfile 构建
用这种方式的,在第 2 步开始把镜像名hivision_idphotos改为linzeyi/hivision_idphotos

docker pull linzeyi/hivision_idphotos:v1

Dockrfile 构建镜像:

在确保将模型权重文件hivision_modnet.onnx放到根目录下后,在根目录执行:

docker build -t hivision_idphotos .

Docker compose:

确保将模型权重文件 hivision_modnet.onnx 放在根目录下后,在根目录下执行:

docker compose build

镜像打包完成后,运行以下命令启动 Gradio 服务:

docker compose up -d

2. 运行 Gradio Demo

等待镜像封装完毕后,运行以下指令,即可开启 Gradio Demo 服务:

docker run -p 7860:7860 hivision_idphotos

在你的本地访问http://127.0.0.1:7860即可使用。

3. 运行 API 后端服务

现在docker镜像可能需要科学上网

docker run -p 8080:8080 hivision_idphotos python3 deploy_api.py

http://www.ppmy.cn/news/1522954.html

相关文章

《Nginx核心技术》第16章:实现Nginx的高可用负载均衡

作者:冰河 星球:http://m6z.cn/6aeFbs 博客:https://binghe.gitcode.host 文章汇总:https://binghe.gitcode.host/md/all/all.html 星球项目地址:https://binghe.gitcode.host/md/zsxq/introduce.html 沉淀&#xff0c…

2024 年高教社杯全国大学生数学建模竞赛题目-C 题 农作物的种植策略

根据乡村的实际情况,充分利用有限的耕地资源,因地制宜,发展有机种植产业,对乡村经济 的可持续发展具有重要的现实意义。选择适宜的农作物,优化种植策略,有利于方便田间管理,提 高生产效益&#…

HTTPS访问是什么?

HTTPS(Hypertext Transfer Protocol Secure)是一种安全的网络传输协议,它基于HTTP(Hypertext Transfer Protocol,超文本传输协议)进行工作,但增加了安全性的要求。HTTPS通过在客户端&#xff08…

014.PL-SQL编程

我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈 入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈 虚 拟 环 境 搭 建 :👉&…

lvs dr模式集群搭建

lvs-dr模式 集群搭建 编辑zyj86主机网卡配置文件 cd /etc/sysconfig/network-scripts/ cp ifcfg-ens160 ifcfg-ens160:1 vim ifcfg-ens160:1TYPEEthernet PROXY_METHODnone BROWSER_ONLYno BOOTPROTOstatic DEFROUTEyes IPV4_FAILURE_FATALno IPV6INITyes IPV6_AUTOCONFyes IP…

经验笔记:持续集成/持续部署(CI/CD)流程

持续集成/持续部署(CI/CD)流程经验笔记 随着软件开发的快速发展,持续集成(Continuous Integration, CI)和持续部署(Continuous Deployment, CD)已经成为现代软件工程不可或缺的部分。CI/CD不仅…

Transformer、BERT、GPT、T5、LLM(大语言模型),以及它们在实际行业中的运用

作为AI智能大模型的专家训练师,我将从主流模型框架的角度来分析其核心技术特点及其在不同实际行业中的应用。我们重点讨论以下几个主流模型框架:Transformer、BERT、GPT、T5、LLM(大语言模型),以及它们在实际行业中的运…

【unity小技巧】使用Unity的Animation Layer和Avatar Mask把多个不同动画组合使用,实现人物不同部位播放不同的动画

文章目录 前言如何使用Unity的Animation Layer和Avatar Mask把多个动画组合使用游戏角色的疲劳感是如何制作的?利用Animation Layers中的additive模式把多个动画混合在一起如何制作角色的受伤状态?Unity动画层级(Animation Layer)…

ChatGPT 3.5/4.0使用手册:解锁人工智能的无限潜能

1. 引言 在人工智能的浪潮中,ChatGPT以其卓越的语言理解和生成能力,成为了一个革命性的工具。它不仅仅是一个聊天机器人,更是一个能够协助我们日常工作、学习和创造的智能伙伴。随着ChatGPT 3.5和4.0版本的推出,其功能和应用范围…

Ftrans无缝替代FTP方案:保障数据传输的安全性与合规性

FTP(文件传输协议)是一种用于在网络上进行文件传输的标准网络协议,历史悠久并且被广泛使用。但随着业务规模和文件体量的快速增长,在应用实践中,FTP存在一些安全和效率问题。因此政府单位需要可以平滑替代FTP的文件传输…

【H2O2|全栈】关于HTML(2)HTML基础(一)

HTML相关知识 目录 前言 准备工作 标签的具体分类(一) 本文中的标签在什么位置使用? 属性 标题标签 段落标签 文本格式化标签 分类汇总 计算机输出标签 ​编辑分类汇总 引文,引用标签 分类汇总 预告和回顾 UI设计…

消息中间件都有哪些

RabbitMQ:这可是一个开源的消息代理软件,也叫消息中间件。它支持多种消息传递协议,可以轻松地在分布式系统中进行可靠的消息传递。 Kafka:Apache Kafka是一个分布式流处理平台,它主要用于处理实时数据流。Kafka的设计初…

C#学习 深入理解委托、匿名方法、Lamda表达式、Linq;

目录 一.委托 1.1 什么是委托 1.2 委托的使用 二.匿名方法和Lamda表达式 2.1 什么是匿名方法 2.2 Lambda表达式 三.Linq 3.1 Linq理解 3.2 Linq的扩展方法 一.委托 1.1 什么是委托 委托和类一样,是具有特定参数列表和返回值类型的方法函数的…

3.比 HTTP 更安全的 HTTPS(工作原理理解、非对称加密理解、证书理解)

所谓的协议 协议只是一种规则,你不按规则来就无法和目标方进行你的工作 协议说白了只是人定的规则,任何人都可以定协议 我们不需要太了解细节,这些制定和完善协议的人去做的,我们只需要知道协议的一个大概 HTTPS 协议 1、概述…

【2.2 简单的逻辑电路,包括与门、与非门、或门】

2.2 简单的逻辑电路,包括与门、与非门、或门 在深度学习中,直接实现传统逻辑电路(如与门、与非门、或门)并不是最常见的应用,因为深度学习模型(如神经网络)通常用于处理更复杂、更抽象的数据表示…

Nginx跨域运行案例:云台控制http请求,通过 http server 代理转发功能,实现跨域运行。(基于大华摄像头WEB无插件开发包)

文章目录 引言I 跨域运行案例开发资源测试/生产环境,Nginx代理转发,实现跨域运行本机开发运行II nginx的location指令Nginx配置中, 获取自定义请求header头Nginx 配置中,获取URL参数引言 背景:全景监控 需求:感知站点由于云台相关操作为 http 请求,http 请求受浏览器…

MonoHuman: Animatable Human Neural Field from Monocular Video 精读

一、共享双向变形模块 1. 模块的核心思想 共享双向变形模块的核心目标是解决从单目视频中生成不同姿态下的3D人体形状问题。因为视频中的人物可能处于各种动态姿态下,模型需要能够将这些不同姿态的几何形状进行变形处理,以适应标准的姿态表示并生成新的…

Anthropic发布Claude企业计划 对标OpenAI的ChatGPT Enterprise

领先的人工智能初创公司 Anthropic 今天宣布推出Claude企业计划,以扩大Claude在企业中的应用。OpenAI 早在 2023 年就推出了名为ChatGPT Enterprise 的类似产品,并取得了相当大的成功。事实上,OpenAI 声称,财富 500 强中已有 92% …

python网络爬虫(五)——爬取天气预报

1.注册高德天气key 点击高德天气,然后按照开发者文档完成key注册;作为爬虫练习项目之一。从高德地图json数据接口获取天气,可以获取某省的所有城市天气,高德地图的这个接口还能获取县城的天气。其天气查询API服务地址为https://re…

在模板中使用 Django 会话

在 Django 中使用会话(session)可以让你在用户访问网站的过程中存储和访问临时数据。我们可以利用会话在速度计算器的例子中存储和显示上次计算的结果。 1、问题背景 在 Django 中,可以使用会话来存储用户数据。在某些情况下,我们…