paddleseg人像分割windows下实现与证照自动生成实现

2023-11-19

paddleseg人像分割windows下实现与证照自动生成实现

近日研究了一下用人脸识别作自动证件照生成。刚开始以为很简单不就是识别出人脸,然后按比例切出。这一步当然很简单,结果看了各种证件照,原来要去除背景的,这样一来原来简单的事搞得复杂无法。先后测试了n多种方法,均不能实现。先进一点就是人点区域来分割,这显然不是一般人能做到的。没办法,只用用人工智能的方式来解决了。看了几个解决方法,以deepv3方案还可以,无耐没法下到模型,直到看到paddleseg人像分割才觉得有了一线曙光。paddleseg是什么大家自已网上看一下。我来说下windows下的预测实现。
因为paddleseg人像分割只依赖的库是yaml-cpp.所以能常上git的很容易就搞定了但上不了就杯具了,我前前后后折腾了一个多月,各种尝试,均告失败。最后终于成功,方法如下:(需要小许银子)
1、购买一个云服务器。操作系统为windows64位的。
2、在远程服务器上安装社区版本的vis2005(主要是能免费用)
3.安装cmake64位的最新版本。
4.下载opencn3.46.
5.下载paddlsee源码。
6.按以下过程操作。我编译的cpu版本的。(下面的代码及文档主要来自官方说明,只修改了文件路径)
### Step1: 下载代码

C++预测库代码在C:\projects\PaddleSeg\deploy\cpp 目录,该目录不依赖任何PaddleSeg下其他目录。

Step2: 下载PaddlePaddle C++ 预测库 fluid_inference

PaddlePaddle C++ 预测库主要分为两大版本:CPU版本

版本 链接
CPU版本 fluid_inference_install_dir.zip

解压后D:\projects\fluid_inference目录包含内容为:

fluid_inference
├── paddle # paddle核心库和头文件
|
├── third_party # 第三方依赖库和头文件
|
└── version.txt # 版本和编译信息

Step3: 安装配置OpenCV

  1. 在OpenCV官网下载适用于Windows平台的3.4.6版本, 下载地址
  2. 运行下载的可执行文件,将OpenCV解压至指定目录,如C:\projects\opencv
  3. 配置环境变量,如下流程所示
    • 我的电脑->属性->高级系统设置->环境变量
    • 在系统变量中找到Path(如没有,自行创建),并双击编辑
    • 新建,将opencv路径填入并保存,如C:\projects\opencv\build\x64\vc14\bin

Step4: 以VS2015为例编译代码

以下命令需根据自己系统中各相关依赖的路径进行修改

  • 调用VS2015, 请根据实际VS安装路径进行调整,打开cmd命令行工具执行以下命令
  • 其他vs版本(比如vs2019),请查找到对应版本的vcvarsall.bat路径,替换本命令即可
call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64

在使用CPU版本预测库进行编译时,可执行下列操作。

# 切换到预测库所在目录
cd /d C:\projects\PaddleSeg\deploy\cpp\
# 创建构建目录, 重新构建只需要删除该目录即可
mkdir build
cd build
# cmake构建VS项目
C:\projects\PaddleSeg\inference\build> cmake .. -G "Visual Studio 14 2015 Win64" -DWITH_GPU=OFF -DPADDLE_DIR=C:\projects\fluid_inference -DOPENCV_DIR=C:\projects\opencv -T host=x64

这里的cmake参数-G, 表示生成对应的VS版本的工程,可以根据自己的VS版本调整,具体请参考cmake文档

  • 生成可执行文件
C:\projects\PaddleSeg\inference\build> msbuild /m /p:Configuration=Release cpp_inference_demo.sln

Step5: 预测及可视化

上述Visual Studio 2015编译产出的可执行文件在build\release目录下,切换到该目录:

cd /d C:\projects\PaddleSeg\deploy\cpp\build\release

之后执行命令:

demo.exe --conf=/path/to/your/conf --input_dir=/path/to/your/input/data/directory

生成成功能就可以运行上面的命令得到相应的mask.

有了mask就一切好办了,下期专门写用qt实现证件照片自动生成。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

paddleseg人像分割windows下实现与证照自动生成实现 的相关文章

随机推荐

  • 浏览器发器POST请求

    浏览器按F12或打开开发者工具 在console 控制台 标签页下输入 fetch new Request http localhost 8080 power font getToken method POST headers Conten
  • oracle同比计算

    计算同地区下 同比百分比 select 2020 area no area desc city no city desc area level key id CASE WHEN NVL SUM VAL 19 0 0 THEN 0 ELSE
  • word2vec损失函数

    未优化前损失函数 以CBOW为例 利用softmax层计算出字典V中每个词的概率 再构建交叉熵损失函数 负采样损失函数 直接对词典里的V个词计算相似度并归一化显然是极其耗时的 为此作者提出了层次Softmax和负采样两种损失层 负采样损失函
  • 【笔试】操作系统知识点整理

    一 操作系统概述 1 操作系统的主要功能 进程与处理机管理 作业和进程调度 进程控制和进程通信 存储管理 内存分配 地址映射 内存保护和内存扩充 设备管理 缓冲区管理 设备分配 设备驱动 设备无关性 文件管理 文件存储空间的管理 文件操作的
  • Eclipse 安装阿里巴巴代码规范插件的步骤

    2017年10月14日杭州云栖大会 Java代码规约扫描插件全球首发仪式正式启动 规范正式以插件形式公开走向业界 引领Java语言的规范之路 目前 插件已在云效公有云产品中集成 立即体验 云效 gt 公有云 gt 设置 gt 测试服务 gt
  • c++系列 —— 移动构造函数

    往期地址 c 系列一 c 的封装 c 系列二 c 的继承 c 系列三 继承和多态特性 c 系列四 运算符重载 c 系列五 静态成员和静态类 c 系列六 友元函数和友元类 c 系列七 STL编程之模板template c 系列八 STL编程之
  • 事件循环机制分享

    Event Loop 即事件循环 是JavaScript或Node为解决单线程代码执行不阻塞主进程一种机制 也就是我们所说的异步原理 要了解事件循环机制首先要了解进程 线程 宏任务 微任务 进程 Process 是计算机中的程序关于某数据集
  • 【STM32F0】Keil 查看局部变量显示

    现象 在进行STM32F0开发的时候出现了 调试代码 添加变量Watch时 显示not in scope 处理方式 因为代码开了优化的处理 把优化改到Level0 就可以解决问题
  • 【深度学习】ResNet残差网络 ResidualBlock残差块实现(pytorch)

    文章目录 前言 一 卷积的相关计算公式 复习 二 残差块ResidualBlock复现 pytorch 三 残差网络ResNet18复现 pytorch 四 直接调用方法 五 具体实践 ResNet进行猫狗分类 六 可能报错 6 1 Typ
  • C语言学习:用C语言实现简单的计算器

    用C语言编写一个简单的可以进行加减乘除运算混合运算的计算器的方法 include
  • 解决Chrome浏览器左键双击没反应,无法启动

    打开任务管理器Ctrl aLT DEL 或是在任务栏图标空白处右击 解决Chrome浏览器点击没反应 2 然后 在进程列中 点击表头排序 之后找到chrome exe进程 解决Chrome浏览器点击没反应 3 右击选择后 结束进程 解决Ch
  • rpm -ivh oracle-xe-11.2.0-1.0.x86_64.rpm

    update install the packages for libaio bc and flex view plaincopy to clipboardprint root localhost yum install libaio bc
  • ECharts社区里面的gallery在哪里?ECharts gallery新地址

    学习echarts map发现echarts 社区里面没有gallery了 找了好久 终于找到了 这是新地址 https www makeapie com explore html 赶紧收藏
  • 软件测试用例——三角形

    1 题目 输入三个数a b c分别作为三边的边长构成三角形 通过程序判定所构成的三角形是一般三角形 等腰三角形还是等边三角形时 请为该程序设计测试用例 用等价类划分方法 分析 得出测试用例 用判定表法 条件 1 2 3 4 5 6 7 8
  • 嵌入式数据库sqlite3【进阶篇】-如何用C语言操作sqlite3,一文搞懂

    sqlite3编程接口非常多 对于初学者来说 我们暂时只需要掌握常用的几个函数 其他函数自然就知道如何使用了 数据库 本篇假设数据库为my db 有数据表student no name score 4 一口Linux 89 0 创建表格语句
  • Keil MDK报错:Browse information of one or more files is not available----全面的解决方法。

    最近玩stm32遇到一个BUG 报错内容如图 图片来自网络 感谢网友提供图片 如有侵权 请私聊以便删除 本人的报错情况跟这个一模一样 不同的是我的报错文件要多一些 以下是解决方法 方法一 1 点击魔术棒 2 在Output界面中勾选Brow
  • Linux文件系统是怎么工作的?

    本文已收录GitHub 更有互联网大厂面试真题 面试攻略 高效学习资料等 磁盘为系统提供了最基本的持久化存储 文件系统则在磁盘的基础上 提供了一个用来管理文件的树状结构 那么 磁盘和文件系统是怎么工作的呢 又有哪些指标可以衡量它们的性能呢
  • Selenium+WebDriver 各浏览器驱动下载与使用

    Selenium python WebDriver驱动下载与使用 Firefox 火狐 浏览器驱动 Chrome google 浏览器驱动 IE浏览器驱动 Microsoft Edge EdgeHTML 浏览器驱动 Microsoft Ed
  • linux send recv函数详解

    2009 05 10 21 55 int send SOCKET s const char FAR buf int len int flags 不论是客户还是服务器应用程序都用send函数来向TCP连接的另一端发送数据 客户程序一般用sen
  • paddleseg人像分割windows下实现与证照自动生成实现

    paddleseg人像分割windows下实现与证照自动生成实现 近日研究了一下用人脸识别作自动证件照生成 刚开始以为很简单不就是识别出人脸 然后按比例切出 这一步当然很简单 结果看了各种证件照 原来要去除背景的 这样一来原来简单的事搞得复