百度的“Python小白逆袭大神
”7日课程转瞬即逝,正如课程标题,参加本课程并按时完成本课程作业的同学们大多数应该着实实现了摘帽"小白"的蜕变。
在本课程中,第一天主要针对小白们进行python
基础知识的讲解,主要学习python
的基础语法及各类常见用法;第二天讲解了爬虫的相关概念和基础知识;第三天重点讲解了python
的数据分析与处理库;第四天讲解了paddleHub
的用法及相关内容;第五天主要是EasyDL
的讲解;第六及七天主要是作业及课程答疑时间。
期间完成的各类作业和课堂笔记均已上传到博客,这里仅列出目录不再赘述。
相比这些,本次见识更多的应该就是了解了百度的飞浆深度学习平台
。并通过一些案列和作业感受其强大。
百度飞桨(PaddlePaddle
)是国内唯一功能完备的开源深度学习平台,自Paddle Fluid v1.0
发布以来,飞桨陆续在开发、训练和部署全流程上进行全方面的升级。
总结一下,其有五大优势:
NLP
、语音和推荐等AI核心技术领域。如 自然语言处理模型库PaddleNLP
,视觉模型库PaddleCV
,预训练模型库PaddleHub
PaddleSlim
基于模拟退火的自动剪枝策略和轻量级模型结构自动搜索功能Light-NAS
,相比MobileNet v2
在ImageNet
类分类任务上精度无损情况下FLOPS
减少17%
API
的稳定和向后兼容,为用户提供完善的中英双语使用文档。在这里体验了 PaddlePaddle
的人脸口罩识别, 《青春有你2》评论检测过滤, 人脸识别分类, EasyDL
数据标记等等。
众所周知,无论什么领域环境和硬件配备方面通常对于新手不算友好,及时使用Docker
也还是对使用者有一定的门槛要求,为此百度免费开放了Web在线开发平台
(AI Studio
)供新手来使用。
AI Studio
使用和 Jupyter Notebook
基本一样, 因此有一些Anaconda
的 Jupyter
使用经验上手会特别快,当然会写Markdown
是最基本的硬实力。
PaddlePaddle
里面的模型,比如CV
方向的, 很多都是 Image Net
训练的模型做了一下迁移学习, 做的很不错, 同时也有自己亿级别的数据训练的模型。
PaddleHub
引入了模型即软件的概念,通过Python API
或者命令行工具,一键完成预训练模型地预测。此外还借鉴了Anaconda
和pip软件包
管理的理念设计了一套命令行接口。
深度学习时代,模型发展的趋势会逐渐向软件工程靠拢;未来模型可以当作一个可执行程序,一键预测;也可以是第三方库,通过模型插拔的方式可以提高开发者的开发效率。
同时模型会有版本的概念,通过不断迭代升级的方式提升我们模型的效果。通过命令行工具,可以方便快捷的完成模型的搜索、下载、安装、预测等功能,对应的关键的命令分别是search
,download
,install
,run
等。
数据集Dataset:PaddleHub
提供多种NLP
任务和CV
任务的数据集,用户也可以在自定义数据集上完成Fine-tune
。
Reader
:PaddleHub
的数据预处理模块Reader对常见的NLP
和CV
任务进行了抽象。Module
:Module
代表了一个预训练模型。Strategy
:在PaddleHub
中,Strategy
类封装了一系列适用于迁移学习的Fine-tune
策略。Strategy
包含了对预训练参数使用什么学习率变化策略,使用哪种类型的优化器,使用什么类型的正则化等。RunConfig
:在PaddleHub
中,RunConfig
代表了在对Task
进行Fine-tune
时的运行配置。包括运行的epoch
次数、batch
的大小、是否使用GPU
训练等。Task
:PaddleHub
预置了常见任务的Task
。Task
代表了一个Fine-tune
的任务。任务中包含了执行该任务相关的Program
、数据Reader
、运行配置等内容。每种Task
都有自己特有的应用场景以及提供了对应的度量指标,用于适应用户的不同需求。预置的任务类型包括图像分类、文本分类、序列分类和多标签分类各类任务。安装
$ pip install paddlepaddle #CPU安装命令
或者
$ pip install paddlepaddle-gpu # GPU安装
以上命令是安装CPU
或者GPU
版本的飞桨。通过以下命令则可以安装PaddleHub
。
$ pip install paddlehub
另外,PaddleHub
内置了深度学习可视化工具VisualDL
的依赖,通过VisualDL
,可以很好的对深度学习任务进行可视化。
随着前几周各企业相继复工,节后经济开始逐渐恢复,人脸口罩检测方案成为返工潮中众多社区、大型厂商、央企的重要需求。如判断工区员工是否佩戴口罩、人流密集的关口运输中心如何识别戴口罩的人脸并测温、佩戴口罩是否也能完成日常刷脸打卡等等……都是新冠肺炎疫情下需要解决的真实痛点。
此次宣布免费开源的自研口罩人脸检测及分类模型,是基于2018年百度收录于国际顶级计算机视觉会议ECCV
的论文PyramidBox
研发,可以在人流密集的公共场景检测海量人脸的同时,将佩戴口罩和未佩戴口罩的人脸快速识别标注。基于此预训练模型,开发者仅需使用少量自有数据,便可快速完成自有场景的模型开发。
百度研发工程师介绍,口罩人脸检测及分类模型,由两个功能单元组成,可以分别完成口罩人脸的检测和口罩人脸的分类。经测试,模型的人脸检测算法基于faceboxes
的主干网络加入了超过10万张口罩人脸数据训练,可在准确率98%的情况下,召回率显著提升30%。
而人脸口罩判断模型可实现对人脸是否佩戴口罩的判定,口罩判别准确率达到96.5%,满足常规口罩检测需求。开发者基于自有场景数据还可进行二次模型优化,可进一步提升模型准确率和召回率。如此高的准确率的背后是大量数据训练的结果,新模型采用了超过十万张图片的训练数据,确保样本量足够且有效。另一方面,人脸检测模型基于百度自研的冠军算法,整个研发过程都是基于百度开源的飞桨深度学习平台,能够进行高效、便捷的模型开发、训练、部署
对于实际场景中的光照、口罩遮挡、表情变化、尺度变化等问题,模型具有鲁棒性,并且能够在多种不同端、边、云设备上实时检测,在落地过程中做到真正实用。
#安装paddlehub
!pip install paddlehub==1.6.0 -i https://pypi.tuna.tsinghua.edu.cn/simple
/conda/envs/python35-paddle120-env/lib/python3.7/site-packages (from zipp>=0.5->importlib-metadata; python_version < "3.8"->pre-commit->paddlehub==1.6.0) (7.2.0)
PyramidBox-Lite
是基于2018年百度发表于计算机视觉顶级会议ECCV 2018
的论文PyramidBox
而研发的轻量级模型,模型基于主干网络FaceBoxes
,对于光照、口罩遮挡、表情变化、尺度变化等常见问题具有很强的鲁棒性。该PaddleHub Module
基于WIDER FACE
数据集和百度自采人脸数据集进行训练,支持预测,可用于检测人脸是否佩戴口罩。
#安装口罩检测模型
!hub install pyramidbox_lite_mobile_mask==1.1.0
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
test_img_path = "data/data31681/test.jpeg"
img = mpimg.imread(test_img_path)
# 展示待预测图片
plt.figure(figsize=(10,10))
plt.imshow(img)
plt.axis('off')
plt.show()
# 预测结果展示
test_img_path = "./detection_result/test.jpeg"
img = mpimg.imread(test_img_path)
# 展示预测结果图片
plt.figure(figsize=(10,10))
plt.imshow(img)
plt.axis('off')
plt.show()
import paddlehub as hub
import cv2
module = hub.Module(name="pyramidbox_lite_mobile_mask")
test_img_path = "data/data31681/test.jpeg"
# set input dict
input_dict = {"data": [cv2.imread(test_img_path)]}
results = module.face_detection(data=input_dict)
print(results)
[{'data': {'label': 'MASK', 'left': 678.9846324920654, 'right': 893.2966804504395, 'top': 241.9092297554016, 'bottom': 487.231333732605, 'confidence': 0.9711812}, 'id': 1}]
借助深度学习7日打卡营Python小白逆袭大神
的这个活动,概括性的了解了机器学习的主要步骤,初步会使用paddle
,学习到了网页爬取、数据可视化展示、图片分类、文本分类等。虽然时间很短,但是收获颇丰。希望以后还能参加类似活动,最后感谢飞桨深度学习学院举办这次活动。