基于飞浆Paddlehub的口罩检测

2020-04-13 11:54:03 浏览数 (1)

这是记录 《深度学习7日入门-CV疫情特辑》的一篇文章。

最早接触百度的飞浆(PaddlePaddle)是因为 口罩检测 的文章,年初的口罩检测项目,也就是本篇文件的样例代码。

飞浆 Paddlepaddle

飞浆 Paddlepaddle 是百度2016年开源的深度学习框架,同 Tensorflow 类似,这可能是目前为止国内开源的最具生态的深度学习框架,但是无论从完善程度,上下游生态,算力平台以及推广来说,百度的飞浆都会少领先许多,当然目前国内开源的深度学习框架也逐渐增多:

  • 华为的 MindSpore,
  • 旷视的 MegEngine(天元),
  • 清华的 Jittor(计图);

PaddleHub

PaddleHub 是飞桨预训练模型管理和迁移学习工具,HubList 提供了 文本、图形、视频 三大领域的许多模型,我们可以基于已有的模型做更多的迁移学习,站在巨人的肩膀可以让我们走的更远;同等对比的就是 tensorflow hub,通过 模型 HUB 我们可以省去很多麻烦,也可以更快的基于基础数据去训练模型。

口罩识别

安装

安装 Paddlepaddle 和 Paddlehub:

代码语言:javascript复制
pip install paddlepaddle -i https://mirror.baidu.com/pypi/simple
pip install --upgrade paddlehub -i https://pypi.tuna.tsinghua.edu.cn/simple

jupyter-lab 或 jupyter book 请注意命令前加!

安装:

代码语言:javascript复制
pip install matplotlib

查看图片

代码语言:javascript复制
import matplotlib.pyplot as plt
import matplotlib.image as mpimg

# 待预测图片,注意图片路径
test_img_path = ["test_mask_detection.jpg"]
img = mpimg.imread(test_img_path[0])

# 展示待预测图片
plt.figure(figsize=(10,10))
plt.imshow(img)
plt.axis('off')
plt.show()

加载模型

代码语言:javascript复制
import paddlehub as hub

module = hub.Module(name="pyramidbox_lite_server_mask")

可以再 HubList 找到更多的模型,尝试更多的检测方法。

预测

基于文件路径检测:

代码语言:javascript复制
input_dict = {"image": test_img_path}

# 口罩检测预测
results = module.face_detection(data=input_dict)
for result in results:
    print(result)

基于图形文件对象

代码语言:javascript复制
import paddlehub as hub
import cv2

module = hub.Module(name="pyramidbox_lite_server_mask")

# 通过 `data` 传入 image 对象
input_dict = {"data": [cv2.imread(test_img_path)]}
results = module.face_detection(data=input_dict)

更多详情可参考: pyramidbox_lite_server_mask

可以得到一下结构数据

代码语言:javascript复制
results = [{'data': {'label': 'MASK',
   'left': 86.54811638593674,
   'right': 260.11792945861816,
   'top': -1.8985447883605957,
   'bottom': 188.90275812149048,
   'confidence': 0.99128973},
  'id': 1,
  'path': '1.png'}]

可以直接契合到已有的 API 服务或者RPC服务。

Ai Studio

AI Studio 是基于百度深度学习平台飞桨的平台,提供在线编程环境、免费GPU算力、海量开源算法和开放数据,之所以说飞浆是生态最为完善的原因 Ai Studio 是有很大的原因的。

其中免费的算力平台是我最为喜欢的:

项目

想要使用免费的算力和资源,你需要通过建立一个项目去进入 Notebook,这里还提供了很多开源的数据集可以使用。

口罩检测

我将文章中的代码放到了公开的 NoteBook 中 口罩检测 ,你可以直接 Fork 尝试。

0 人点赞