这是记录 《深度学习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 尝试。