调用百度飞桨paddlehub模型进行口罩识别详解

调⽤百度飞桨paddlehub模型进⾏⼝罩识别详解⽬录
1. 导⼊所需要的函数库
import paddlehub as hub鼎湖山听泉赏析
import cv2
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
关于paddlehub的下载可以去官⽹复制下载命令:
msc
安装完paddlehub后还需要安装paddle库,不然会缺少依赖库
conda install -c paddle paddlepaddle
或:
pip install paddle
不会打开conda命令⾏安装的可参考⽹上博客
2. 进⾏预测
2.1导⼊模型
module = hub.Module(name="pyramidbox_lite_server_mask")
模型有两种:pyramidbox_lite_server_mask和pyramidbox_lite_mobile_mask
据说⼀种适合于PC⼀种适合于移动端,我⾃⼰在电脑上试了⼀下区别不是特别⼤,可以都试试。
2.2 输⼊图⽚
先将需要判别的图⽚路径输⼊⼀个列表,这样能⽅便在⼀张图⽚和多张图⽚的情况下进⾏切换
img_paths = ["test.jpg", 'test2.jpg']
2.3 模型预测
for img_path in img_paths:
result_list = module.face_detection(images=[cv2.imread(img_path)],
use_multi_scale=True,
shrink=0.6,
visualization=True,
output_dir= 'result')
使⽤⼀个for结构遍历每⼀张图⽚,使⽤model对每⼀张图⽚进⾏预测,具体参数如下:
images:输⼊的图⽚矩阵,需要把矩阵放在⼀个列表⾥⾯。
use_multi_scale:是否开启多尺度的⼈脸检测,默认为关闭。开启多尺度⼈脸检测能够更好的检测到输⼊图像中不同尺⼨的⼈脸,但是会
增加模型计算量,降低预测速度,建议在对⼈脸漏检要求⽐较低的场景下开启该设置。
shrink:图⽚的缩放⽐例,输⼊值应位于区间 (0 ~ 1],默认为 0.5。shrink 值越⼤,则对于输⼊图⽚中的⼩尺⼨⼈脸有更好的检测效果,
反之则对于⼤尺⼨⼈脸有更好的检测。同时, shrink 值越⼤,则模型计算成本越⾼。
visualization: 是否数据可视化。也就是否是在图⽚上标注并保存
外来妹output_dir:可视化图⽚时保存在哪个⽂件夹,“result”是python⽂件同⽬录下的⽂件夹名
2.4 输出结果
军品收藏
接着上⾯的for继续输⼊下⾯的代码
# 列表⾥就⼀个字典,先取出来放到result
result = result_list[0]
for i in result['data']:
print(i)
# 除去path最后的".0"
华硕m5000path_charlist = list(result["path"])
扑杀path_charlist = path_charlist[:-2]
path_str = ''.join(path_charlist)
path = out_path + '/' + path_str + '.jpg'
# print(path)
img = mpimg.imread(path)
plt.figure(figsize=(10, 10))
plt.imshow(img)
plt.show()
在2.3中调⽤函数输出的结果 result_list 是⼀个列表,列表⾥存了⼀个字典,字典⾥存了两个键:
1. “data”下的列表⾥存了判断结果,图⾥⾯检测到有多少⼈就会后多少结果,包括标签、置信度等等。
2. “path”代表了对原始图⽚标注后保存在“result”⽂件夹下的图⽚⽂件 。但是有个巨坑的点是这⾥字符串
'ndarray_time=1631435493820565.0' 最后有个 “.0”, 但是实际保存的件名没有这个“.0”, 所有我们先把这个字符串转为字
符列表, 删去这两个字符重新组成⼀个字符串,最后拼接成⼀个完整路径。
[{'data':[{'label': 'MASK', 'confidence': 0.9759233593940735, 'top': 58.0, 'bottom':        104.0,'left': 400.69516362063877, 'right': 438.3390585363993}
{'label': 'MASK', 'confidence': 0.9172435998916626, 'top': 53.64396893298924, 'bottom':99.64396893298924, 'left': 26.35603106701076, 'right': 64.321984          {'label': 'NO MASK',
'confidence': 0.9999872446060181, 'top': 54.30020750795207, 'bottom':104.60041501590413, 'left': 137.0, 'right': 176.650103753976          {'label': 'MASK', 'confidence': 0.6583895087242126, 'top': 35.00001546493642, 'bottom':85.0, 'left': 317.33342512243536, 'right': 358.00003651553754}          {'label': 'MASK', 'confidence': 0.9855310916900635, 'top': 39.27854682887172, 'bottom':82.00069122449543, 'left': 524.8830477865314, 'right': 545.88443          {'label': 'NO MASK', 'confidence': 0.9892868995666504, 'top': 74.50029313180652, 'bottom':105.99941373638697, 'left': 371.0, 'right': 397.500293131806  'path': 'ndarray_time=1631435493820565.0'
}]
最后是程序可视化的结果:
3. 完整代码地址:代码和图⽚都传到了github:

本文发布于:2024-09-21 15:36:43,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/453354.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:检测   保存   结果
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议