前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >百度开源口罩检测项目,小编教你30分钟搞定模型训练

百度开源口罩检测项目,小编教你30分钟搞定模型训练

作者头像
个推君
发布2020-03-27 11:05:23
7120
发布2020-03-27 11:05:23
举报
文章被收录于专栏:原创

史上最长春假结束,全国各地企业陆续复工。机场、火车站等地又将迎来人流高峰,我们对疫情防护仍然不能有所懈怠。如何实时检测人群口罩佩戴情况从而快速发现未按要求佩戴口罩的人,对于防疫工作来说,是个头大的问题。

目前AI人脸口罩检测方案已成为返工潮中众多社区、企业、商场解决该问题的首选方案,并得到了较好的应用。各大企业也积极为AI战“疫”做出贡献,百度开源了业界首个口罩人脸检测及分类模型,滴滴随后也免费开放了口罩佩戴识别技术。那么,它们是如何建立口罩检测模型的呢?其背后原理是什么?今天小编将为你揭开TensorFlow模型训练的秘密,让你看完本篇文章,就能学会自己训练模型。

知识点

TensorFlow™ 是一个采用数据流图(data flow graphs)对数值予以计算的开源软件库。数据流图根据“节点”(nodes)和“线”(edges)的有向图来描述数学计算。“节点” 一般表示施加的数学操作,但也可以代表数据输入(feed in)的起点/输出(push out)的终点,或者是读取/写入持久变量(persistent variable)的终点。“线”表示“节点”之间的输入/输出关系。这些数据“线”可以传递“size可动态调整”的多维数据数组,即“张量”(tensor)。一旦输入端的所有张量准备好,节点将被分配到各种计算设备完成异步并行运算。

 (图片来源于TensorFlow社区)
(图片来源于TensorFlow社区)

Faster R-CNN主要包括两个模块:一个是深度全卷积网络RPN,该网络用来产生候选区域;另一个是Fast R-CNN检测器,它依赖RPN网络产生的候选区域进行分类与边框回归计算。

 (图片来源于arxiv.org)
(图片来源于arxiv.org)

FasterR-CNN网络的核心点就是RPN候选区域生成网络的设计。RPN网络结构的设计基于卷积神经网络,输入一张图像,RPN网络便会输出一系列的候选物体矩形框,每个矩形框附带一个分数来表示其属于真实物体的信念值。RPN由一个全卷积网络构建,方便与Fast R-CNN共享参数,RPN与Fast R-CNN共享卷积层。

 (图片来源于doutugou)
(图片来源于doutugou)

开始动工

问题:

如何基于TensorFlow训练口罩检测模型?

相关资源

1、TensorFlow Models

下载地址:https://dwz.cn/nw3xPTLZ

配置参见:https://dwz.cn/9vJY5MKs

2、COCO数据集预训练模型

下载地址:https://dwz.cn/KD9mWgQA

3、LabelImg

下载地址:https://dwz.cn/KWrIjpAk

准备样本数据

1、使用 Labellmg 工具对每张图片的目标位置进行框选,随后打上分类标签(mask,nomask),保存后输出XML文件。

(图片来源于UnSplash)

2、将用于训练的XML文件转换为CSV格式

调用xml2csv.py,并更改数据输入和输出目录,从而将数据分为三部分(训练集、验证集、测试集),最后运行脚本,即可完成CSV文件转换。

3、将CSV文件转换为TFRecord格式

TFRecord格式由TensorFlow制定,是结合图片和标签数据产生的二进制文件,能更好地利用内存机制,实现快速读取、复制、移动、存储等功能。我们使用generate_tfrecord.py指定输入、输出路径便可完成转换。

配置标签文件

前文已经把用于训练集和验证集的record文件准备好了,接下来我们需要仿照TensorFlow Models 中 models/research/object_detection/data/pet_label_map.pbtxt 创建一个标签文件mask.pbtxt,用于定义模型的分类。

配置训练参数

仿照TensorFlow Models 中models/research/object_detection/samples/configs/faster_rcnn_resnet101_coco.config创建 mask.config将num_classes修改为当前的分类数量;

将所有PATH_TO_BE_CONFIGURED改为本机路径;

开始训练

调用model_main.py训练

动态监测

使用tensorboard工具进行训练情况监测

训练结果

 场景人脸口罩检测(图片来源于pixabay)
场景人脸口罩检测(图片来源于pixabay)

注意:准备样本时,为什么要对待检测目标进行分类?

图片分类是将图片分为某一类别,理论上,正确答案只有一个;而物体检测则是将待检测图片中所出现的全部物体用矩形进行框选标注,物体的类别除了我们文中提到的口罩,还可以有其他选择,例如人、手机、车、楼等。换句话说,这是个多选题,答案不止一个。

结语

口罩检测模型训练,首先要准备充足的样本数据,其次将待检测样本予以标注分类,分为佩戴口罩和未佩戴口罩两类;然后通过大量的样本数据训练得出检测模型;最后针对训练得到的模型进行验证评估和相关参数调优。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
人脸识别
腾讯云神图·人脸识别(Face Recognition)基于腾讯优图强大的面部分析技术,提供包括人脸检测与分析、比对、搜索、验证、五官定位、活体检测等多种功能,为开发者和企业提供高性能高可用的人脸识别服务。 可应用于在线娱乐、在线身份认证等多种应用场景,充分满足各行业客户的人脸属性识别及用户身份确认等需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档