本文介绍将PP-HumanSeg-Lite轻量级人像分割模型部署到树莓派的流程。先克隆PaddleSeg仓库、安装相关工具并下载预训练模型,接着导出静态图模型并转为ONNX格式,最后编写预测代码。将相关文件夹打包至树莓派,即可运行实现实时人像分割。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

人像分割是图像分割领域的高频应用,PaddleSeg推出在大规模人像数据上训练的人像分割系列模型PP-HumanSeg,包括超轻量级模型PP-HumanSeg-Lite,满足在服务端、移动端、Web端多种使用场景的需求。本项目将PP-HumanSeg-Lite模型转为onnx并部署到树莓派,实现人像抠图效果。效果如下图所示(这里只露个半脸):
本项目将PaddleSeg的轻量级人像分割模型转换为onnx,将其部署到树莓派实现实时人像分割。树莓派环境如下:
树莓派4B
摄像头一个
Ubuntu Desktop 21.10
onnxruntime
opencv-python
# step 1: git clone %cd ~/ !git clone https://gitee.com/PaddlePaddle/PaddleSeg.git
# step 2: install paddleseg!pip install paddleseg
# step 3: 下载预训练模型%cd ~/PaddleSeg/contrib/PP-HumanSeg !python pretrained_model/download_pretrained_model.py
需要加上input_shape,本项目部署的模型是PP-HumanSeg-Lite,该模型的输入图片大小是192x192,如果要部署其他模型,需要更改model_path和config路径,。
Openflow
一键极速绘图,赋能行业工作流
88
查看详情
In [ ]
# step 4: 导出静态图模型%cd ~/PaddleSeg/contrib/PP-HumanSeg !python ../../export.py \ --config configs/fcn_hrnetw18_small_v1_humanseg_192x192_mini_supervisely.yml \ --model_path pretrained_model/fcn_hrnetw18_small_v1_humanseg_192x192/model.pdparams \ --s*e_dir export_model/fcn_hrnetw18_small_v1_humanseg_192x192 \ --with_softmax --input_shape 1 3 192 192
# step 5:转为onnx模型# ① 安装paddle2onnx!pip install paddle2onnxIn [ ]
# ② 转换为onnx%cd ~/PaddleSeg/contrib/PP-HumanSeg
! paddle2onnx --model_dir ./export_model/fcn_hrnetw18_small_v1_humanseg_192x192/ \
--model_filename model.pdmodel \
--params_filename model.pdiparams \
--s*e_file onnx_model/model.onnx \
--opset_version 12
模型路径是:/home/aistudio/pp_humanseg_deploy,文件夹目录结构如下:
|-onnx_model
|---model.onnx
|-predict.py
# step 6: 转移模型路径%cd ~/ !mkdir pp_humanseg_deploy %cd ~/pp_humanseg_deploy/ !mkdir onnx_model !cp ~/PaddleSeg/contrib/PP-HumanSeg/onnx_model/model.onnx ~/pp_humanseg_deploy/onnx_model
创建/home/aistudio/pp_humanseg_deploy/predict.py,将以下内容放进predict.py。
import cv2import numpy as npimport onnxruntime as rtdef normalize(im, mean=[0.5, 0.5, 0.5], std=[0.5, 0.5, 0.5]):
im = im.astype(np.float32, copy=False) / 255.0
im -= mean
im /= std return imdef resize(im, target_size=608, interp=cv2.INTER_LINEAR):
if isinstance(target_size, list) or isinstance(target_size, tuple):
w = target_size[0]
h = target_size[1] else:
w = target_size
h = target_size
im = cv2.resize(im, (w, h), interpolation=interp) return imdef preprocess(image, target_size=(192, 192)):
image = normalize(image)
image = resize(image, target_size=target_size)
image = np.transpose(image, [2, 0, 1])
image = image[None, :, :, :] return imagedef display_masked_image(mask, image, color_map=[255, 0, 0], weight=0.6):
mask = mask > 0
c1 = np.zeros(shape=mask.shape, dtype='uint8')
c2 = np.zeros(shape=mask.shape, dtype='uint8')
c3 = np.zeros(shape=mask.shape, dtype='uint8')
pseudo_img = np.dstack((c1, c2, c3)) for i in range(3):
pseudo_img[:, :, i][mask] = color_map[i]
vis_result = cv2.addWeighted(image, weight, pseudo_img, 1 - weight, 0) return vis_result
onnx_model_path = 'onnx_model/model.onnx'sess = rt.InferenceSession(onnx_model_path)
input_name = sess.get_inputs()[0].name
label_name = sess.get_outputs()[0].name
target_size = (192, 192)
cap_video = cv2.VideoCapture(0)if not cap_video.isOpened(): raise IOError("Error opening video stream or file.")while cap_video.isOpened():
ret, raw_frame = cap_video.read()
pre_shape = raw_frame.shape[0:2][::-1] if ret:
frame = cv2.cvtColor(raw_frame, cv2.COLOR_BGRA2RGB)
frame = preprocess(frame, target_
size)
pred = sess.run(
[label_name],
{input_name: frame.astype(np.float32)}
)[0]
pred = pred[0]
raw_frame = resize(raw_frame, target_size)
image = display_masked_image(pred, raw_frame)
image = resize(image, target_size=pre_shape)
cv2.imshow('HumanSegmentation', image) if cv2.waitKey(1) & 0xFF == ord('q'): break
else: breakcap_video.release()
将/home/aistudio/pp_humanseg_deploy文件夹打包,放入树莓派环境运行predict.py,效果如下:
以上就是轻量级人像分割模型PP-HumanSeg树莓派部署的详细内容,更多请关注其它相关文章!
# 将其
# 简单网站建设在线测试
# 铁岭seo网站优化哪家比较好
# 济南seo顾问公司
# 汽车网站建设公司代理
# 成都b站关键词排名优化哪家好
# 吴县抖音营销推广公司地址
# 宁波网站建设专家
# 海口seo维护
# 滁州seo推广如何操作
# 石榴酒营销推广活动
# 极速
# 所示
# 解决问题
# 相关文章
# python
# 工作流
# 官网
# 转换为
# 一言
# 中文网
# type
# fig
# udio
# igs
# red
# ai
# 工具
# git
相关栏目:
【
Google疑问12 】
【
Facebook疑问10 】
【
优化推广96088 】
【
技术知识133117 】
【
IDC资讯59369 】
【
网络运营7196 】
【
IT资讯61894 】
相关推荐:
真全息产品,亮相深圳文博会——dipal数伴拓展元宇宙非沉浸式体验
在这里见未来!杭州未来科技城全球AI盛会邀您共探最前沿
世界上第一个完全由人工智能驱动的图像编辑器!
五款 AI 网站构建器,任何人都能快速构建网站
抖音在Android平台获得VR|直播|软件著作权
阿里云AI绘画创作大模型通义万相发布 已开启定向邀测
猿辅导推出Motiff,整合三大AI功能,助力UI设计生产力革新
70年前他本想逃避考试,却影响了整个互联网
Zoom远程会议应用:AI培训需经用户授权
麦肯锡:到 2045 年左右,将有 50% 工作被 AI 接管
人工智能大胆预测:银河系至少有2万个地球,36种外星文明
靠游戏更靠AI 英伟达成唯一首季度两位数增长的公司
曝光HarmonyOS 4的重要新能力:全面升级AI大模型,小艺实现全面进化
生成式人工智能如何改变云安全的游戏规则
复盘MWC上海:AI大模型时代到来 通信网络将会怎样改变?
周鸿祎:用超级AI实现室温超导和核聚变,实现能源自由
看懂AI,找到增长新势能 | 笔记侠AI峰会等你来
午报 | 字节跳动要造机器人;东方甄选首次启动自有APP|直播|
三个全球首创,青岛西海岸新区“海元宇宙”亮相世界人工智能大会
禁止艺术家使用 AI 创作《龙与地下城》游戏插图的决定已在 D&D Beyond 生效
AI创作广告文案等同2.47年工作经验,且消费者无法区分|AI营销前沿
先进技术在防止全球数据丢失方面的作用
乐天派桌面机器人加入小米米家生态系统,实现与其他智能设备的互联
阿里云推出通义万相AI绘画大模型
ChatGPT大更新!OpenAI奉上程序员大礼包:API新增杀手级能力还降价,新模型、四倍上下文都来了
BLIP-2、InstructBLIP稳居前三!十二大模型,十六份榜单,全面测评「多模态大语言模型」
月薪6万,哪些AI岗位在抢人?
云鲸发布全新的扫拖机器人J4系列
意大利警察拟用AI预测犯罪 该算法被指种族歧视严重
2025年深圳举办的SUSECON 创新峰会开始接受报名
世界周刊丨AI“棱镜”?
智能电网技术:提高能源效率和可靠性
AI行业盛会大咖云集!Sam Altam、“AI教父”......一文看懂最新观点
如何用户外电源给无人机实现持久续航
如何利用AI工具写好本科论文:科技助你一臂之力
OpenOOD更新v1.5:全面、精确的分布外检测代码库及测试平台,支持在线排行榜、一键测试
网易数帆以AI融合创新引领数据分析与软件开发新趋势
阿里云全面支持Llama2训练部署,助力企业快速构建自有大型模型
500元一张的AI艺术二维码制作,详细教程来了!
阿里大文娱CTO郑勇:生成式AI将引发内容行业巨变,*制作机会挑战并存
猿编程参加人工智能高峰论坛,推动人工智能教育解决方案在千所学校推行
警惕!AI或致虚假信息泛滥
构建AI绘画网站的方法:使用API接口和调用步骤
AI+音乐如何“生成”动听旋律?一起揭秘世界人工智能大会开场曲
码刻 | 48小时Hackathon,源码见证新生代AI创新的发生
争鸣:OpenAI奥特曼、Hinton、杨立昆的AI观点到底有何不同?
开创全新虚拟现实体验的Pimax Crystal VR头显
上天下海登极,青岛与昇腾AI握手一起探索星辰大海
机器人技能大比拼
可按用户语气自动回复消息,Zoom 推出基于生成式 AI 的新功能
2025-07-31
运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。