当前位置: 首页 > article >正文

一个10k stars开源的证件照工具

特别说明:以下内容全部来自官方文档,自测后记录一下

建议:使用conda创建python3.10环境,docker一直拉取失败,建议直接使用项目启动

项目简介

🚀 谢谢你对我们的工作感兴趣。您可能还想查看我们在图像领域的其他成果,欢迎来信:zeyi.lin@swanhub.co.

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

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

HivisionIDPhoto 可以做到:

  1. 轻量级抠图(纯离线,仅需 CPU 即可快速推理)
  2. 根据不同尺寸规格生成不同的标准证件照、六寸排版照
  3. 支持 纯离线 或 端云 推理
  4. 美颜(waiting)
  5. 智能换正装(waiting)


准备工作

环境安装与依赖:

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

1. 克隆项目

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

2. 安装依赖环境

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

pip install -r requirements.txt
pip install -r requirements-app.txt

3. 下载权重文件

方式一:脚本下载

python scripts/download_model.py --models all

方式二:直接下载

存到项目的hivision/creator/weights目录下:

  • modnet_photographic_portrait_matting.onnx (24.7MB): MODNet官方权重,下载
  • hivision_modnet.onnx (24.7MB): 对纯色换底适配性更好的抠图模型,下载
  • rmbg-1.4.onnx (176.2MB): BRIA AI 开源的抠图模型,下载后重命名为rmbg-1.4.onnx
  • birefnet-v1-lite.onnx(224MB): ZhengPeng7 开源的抠图模型,下载后重命名为birefnet-v1-lite.onnx

4. 人脸检测模型配置(可选)

拓展人脸检测模型介绍使用文档
MTCNN离线人脸检测模型,高性能CPU推理(毫秒级),为默认模型,检测精度较低Clone此项目后直接使用
RetinaFace离线人脸检测模型,CPU推理速度中等(秒级),精度较高下载后放到hivision/creator/retinaface/weights目录下
Face++旷视推出的在线人脸检测API,检测精度较高,官方文档使用文档

5. GPU推理加速(可选)

如需使用英伟达GPU加速推理,在确保你已经安装CUDA与cuDNN后,根据文档找到对应的onnxruntime-gpu版本安装,如:

# CUDA 12.x, cuDNN 8
pip install onnxruntime-gpu==1.18.0

完成后,调用如birefnet-v1-lite模型将会利用GPU加速推理。


http://www.kler.cn/a/318848.html

相关文章:

  • 离线 快速搭建 docker docker-compose k8s 环境
  • NVR录像机汇聚管理EasyNVR多品牌NVR管理工具/设备:大华IPC摄像头局域网访问异常解决办法
  • 【mysql的当前读和快照读】
  • 【C++】string类(附题)
  • 前端vue 列表中回显并下拉选择修改标签
  • 微服务即时通讯系统的实现(客户端)----(1)
  • 【Go语言】Go语言结构体全面解析
  • 9.24-k8s服务发布
  • C#|.net core 基础 - 深拷贝的五大类N种实现方式
  • streamlit 文件上传保存+预览
  • 七层负载均衡和四层负载均衡的区别
  • 苍穹外卖学习笔记(十一)
  • 智谱AI:CogVideoX-2b——视频生成模型的得力工具
  • 短视频矩阵源码/短视频矩阵系统搭建/源码开发知识分享
  • Github + Hexo + Shoka搭建个人博客以及遇到的部分问题
  • mysqldump使用cmd窗口和powersell窗口导出sql中文乱码的问题
  • 工厂模式在短信发送中的应用 —— 以腾讯云、阿里云、华为云为例
  • Vue.js 中,@click 和 @click.stop的区别
  • Redis 多级缓存
  • 可以把台式电脑做成服务器吗
  • 状态模式原理剖析
  • OpenCV normalize() 函数详解及用法示例
  • 钰泰-ETA6964A 锂电池充电器IC
  • 基于STM32F103C8T6单片机的农业环境监测系统设计
  • 3D模型在UI设计中应用越来越多,给UI带来了什么?
  • API代理是什么?解读其原理与作用