开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 10219|回复: 6
收起左侧

[技术专题] 轻量级人像分割深度学习模型PP-HumanSeg易语言调用

[复制链接]
结帖率:89% (79/89)
发表于 2022-8-9 14:10:35 | 显示全部楼层 |阅读模式   江苏省苏州市
百度PaddlePaddle团队发布的PP-HumanSeg人像分割模型,功能挺强的,不得不说百度是在BAT三家公司里做技术最扎实的源码地址:https://github.com/PaddlePaddle/PaddleSeg
。我编写了一套使用易语言 OpenCV 部署PP-HumanSeg肖像分割的程序,彻底摆脱对任何深度学习框架的依赖,onnx模型文件很小,只有5.9M。这是程序读取一张人像图片的运行结果,左于是边是原图,右边是程序运行结果图。 3.png 1.png 2.png 4.png

易语言调用实现:
1.类
  
窗口程序集名保 留  保 留备 注
PP_HumanSeg, , 公开   
变量名类 型数组备 注
输入宽整数型  
输入高整数型  
置信_阈值小数型  
DNN网络网络类  

子程序名返回值类型公开备 注
_初始化 当基于本类的对象被创建后,此方法会被自动调用
输入宽 = 192
输入高 = 192
置信_阈值 = 0.5
DNN网络 = 视觉_读取网络 (“C:\Users\hanyo\Desktop\PP-HumanSeg\model_float32.onnx”, , “”)
子程序名返回值类型公开备 注
_销毁 当基于本类的对象被销毁前,此方法会被自动调用

子程序名返回值类型公开备 注
推理多维矩阵类 
参数名类 型参考可空数组备 注
输入图多维矩阵类
变量名类 型静态数组备 注
多维矩阵类 
斑点多维矩阵类 
输数数组多维矩阵类0
输出_高整数型 
输出_宽整数型 
掩码_输出多维矩阵类 
分割图多维矩阵类 
结果图多维矩阵类 
行计次整数型 
分数小数型 
列计次整数型 
BGR字节型0
BGR新双精度小数型3
视觉_调整尺寸 (输入图, 图, 尺寸2i (输入宽, 输入高), #插值_双线性二次, 0, 1)
图.转换到 (图, #Cv小数型_三通道, 1 ÷ (255 × 0.5), -1)
斑点 = 视觉_图像前景目标 (图, 1, , , 假, 假, 5)
DNN网络.设置输入 (斑点, “”, 1, )
DNN网络.前向计算V (输数数组, DNN网络.获取未连接的输出层名称 ())
' 后期处理。
输出_高 = 输数数组 [1].维度元素数 (1)
输出_宽 = 输数数组 [1].维度元素数 (2)
掩码_输出.指针初始化 (输出_高, 输出_宽, #Cv小数型_双通道, 输数数组 [1].数据指针 ())
视觉_调整尺寸 (掩码_输出, 分割图, 尺寸2i (输入图.列数 (), 输入图.行数 ()), 0, 0, 1)
结果图 = 输入图.克隆 ()
变量循环首 (0, 输入图.行数 () - 1, 1, 行计次)
变量循环首 (0, 输入图.列数 () - 1, 1, 列计次)
分数 = 指针到小数 (分割图.取元素指针 (行计次, 0) + 列计次 × 2 × 4)
如果真 (分数 > 置信_阈值)
BGR = 输入图.取元素8U (行计次, 列计次)
BGR新 [1] = BGR [1] × 0.5 + 1  ' B
BGR新 [2] = BGR [2] × 0.5 + 1  ' G
BGR新 [3] = BGR [3] × 0.5 + 1  ' R
结果图.置元素V (行计次, 列计次, BGR新)

变量循环尾 ()
变量循环尾 ()
变量循环首 (0, 输入图.行数 () - 1, 1, 行计次)
变量循环首 (0, 输入图.列数 () - 1, 1, 列计次)
分数 = 指针到小数 (分割图.取元素指针 (行计次, 0) (列计次 × 2 + 1) × 4)
如果真 (分数 > 置信_阈值)
BGR = 输入图.取元素8U (行计次, 列计次)
BGR新 [1] = BGR [1] × 0.5 + 1  ' B
BGR新 [2] (BGR [2] + 255) × 0.5 + 1  ' G
BGR新 [3] = BGR [3] × 0.5 + 1  ' R
结果图.置元素V (行计次, 列计次, BGR新)

变量循环尾 ()
变量循环尾 ()
返回 (结果图)


i支持库列表   支持库注释   
OpenCV(未知支持库)

2.调用
  
窗口程序集名保 留  保 留备 注
小白鼠  QQ群:164579213
子程序名返回值类型公开备 注
_启动子程序整数型 本子程序在程序启动后最先执行
变量名类 型静态数组备 注
使用_视频逻辑型 
视频视频采集类 
人像分割PP_HumanSeg 
输入图片多维矩阵类 
输出图片多维矩阵类 
标题文本型 
使用_视频 = 假
标题 = “小白鼠 PP-HumanSeg Dome”
视觉_创建窗口 (标题, #窗口_标准 )
如果 (使用_视频)
视频.打开 (0, 0, )
如果真 (视频.已打开 ())
视觉_控制台输出 (“打不开视频。”, )
返回 (-1)
判断循环首 (视频. (输入图片))
输出图片 = 人像分割.推理 (输入图片)
视觉_显示图像 (标题, 输出图片)
视觉_等待按键 (1)
判断循环尾 ()
视觉_销毁所有窗口 ()
输入图片.从字节集加载 ( #图片4, #读图_彩色 )
输出图片 = 人像分割.推理 (输入图片)
视觉_创建窗口 (“输入”, #窗口_标准 )
视觉_显示图像 (“输入”, 输入图片)
视觉_显示图像 (标题, 输出图片)
视觉_等待按键 (0)
视觉_销毁所有窗口 ()

返回 (0)  ' 可以根据您的需要返回任意数值



i支持库列表   支持库注释   
OpenCV(未知支持库)


评分

参与人数 1好评 +1 精币 +2 收起 理由
山川 + 1 + 2 新技能已get√

查看全部评分


本帖被以下淘专辑推荐:

发表于 2022-10-12 15:58:32 | 显示全部楼层   浙江省温州市
新技能已get√
回复 支持 反对

使用道具 举报

结帖率:0% (0/1)

签到天数: 2 天

发表于 2022-8-26 07:59:38 | 显示全部楼层   山东省菏泽市
感谢分享,很给力!~
回复 支持 反对

使用道具 举报

头像被屏蔽
发表于 2022-8-15 11:59:45 | 显示全部楼层   江苏省宿迁市
好牛逼的样子
回复 支持 反对

使用道具 举报

结帖率:91% (52/57)

签到天数: 6 天

发表于 2022-8-11 19:29:38 | 显示全部楼层   河北省邢台市
ddle团队发布的PP-HumanSeg人像分割模型,功能挺强的,不得不说百d是在BAT三家
回复 支持 反对

使用道具 举报

签到天数: 2 天

发表于 2022-8-9 21:53:59 | 显示全部楼层   河南省濮阳市
回复 支持 反对

使用道具 举报

结帖率:71% (5/7)

签到天数: 6 天

发表于 2022-8-9 14:32:40 | 显示全部楼层   美国
不错 支持一下
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表