文档章节

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

个推
 个推
发布于 03/26 20:35
字数 1473
阅读 29
收藏 0

3 月,跳不动了?>>>

 
史上最长春假结束,全国各地企业陆续复工。机场、火车站等地又将迎来人流高峰,我们对疫情防护仍然不能有所懈怠。如何实时检测人群口罩佩戴情况从而快速发现未按要求佩戴口罩的人,对于防疫工作来说,是个头大的问题。
 
目前AI人脸口罩检测方案已成为返工潮中众多社区、企业、商场解决该问题的首选方案,并得到了较好的应用。各大企业也积极为AI战“疫”做出贡献,百度开源了业界首个口罩人脸检测及分类模型,滴滴随后也免费开放了口罩佩戴识别技术。那么,它们是如何建立口罩检测模型的呢?其背后原理是什么?今天小编将为你揭开TensorFlow模型训练的秘密,让你看完本篇文章,就能学会自己训练模型。
 
知识点
TensorFlow™ 是一个采用数据流图(data flow graphs)对数值予以计算的开源软件库。数据流图根据“节点”(nodes)和“线”(edges)的有向图来描述数学计算。“节点” 一般表示施加的数学操作,但也可以代表数据输入(feed in)的起点/输出(push out)的终点,或者是读取/写入持久变量(persistent variable)的终点。“线”表示“节点”之间的输入/输出关系。这些数据“线”可以传递“size可动态调整”的多维数据数组,即“张量”(tensor)。一旦输入端的所有张量准备好,节点将被分配到各种计算设备完成异步并行运算。
 
 
(图片来源于TensorFlow社区)
Faster R-CNN主要包括两个模块:一个是深度全卷积网络RPN,该网络用来产生候选区域;另一个是Fast R-CNN检测器,它依赖RPN网络产生的候选区域进行分类与边框回归计算。
 
 
 
(图片来源于arxiv.org)
FasterR-CNN网络的核心点就是RPN候选区域生成网络的设计。RPN网络结构的设计基于卷积神经网络,输入一张图像,RPN网络便会输出一系列的候选物体矩形框,每个矩形框附带一个分数来表示其属于真实物体的信念值。RPN由一个全卷积网络构建,方便与Fast R-CNN共享参数,RPN与Fast R-CNN共享卷积层。
 
 
(图片来源于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)
 
注意:准备样本时,为什么要对待检测目标进行分类?
图片分类是将图片分为某一类别,理论上,正确答案只有一个;而物体检测则是将待检测图片中所出现的全部物体用矩形进行框选标注,物体的类别除了我们文中提到的口罩,还可以有其他选择,例如人、手机、车、楼等。换句话说,这是个多选题,答案不止一个。
 
结语
口罩检测模型训练,首先要准备充足的样本数据,其次将待检测样本予以标注分类,分为佩戴口罩和未佩戴口罩两类;然后通过大量的样本数据训练得出检测模型;最后针对训练得到的模型进行验证评估和相关参数调优。
抗击疫情,我们在行动。小编希望,这项技术的运用可以减少公众场所的安全隐患,让开发者的力量影响到更多人,从而为疫情防护做出贡献。
 
如何获取口罩训练项目源代码
关注【个推技术学院】微信公众号
(微信号:getuitech)
回复关键词“口罩”
即可获取源代码
 

© 著作权归作者所有

个推
粉丝 31
博文 108
码字总数 214033
作品 0
杭州
私信 提问
加载中

评论(0)

百度开源业内首个口罩人脸检测及分类模型

抗击疫情,众志成城,人工智能技术正被应用到疫情防控中来。 2月13日,百度宣布免费开源业内首个口罩人脸检测及分类模型。该模型可以有效检测在密集人流区域中携带和未携戴口罩的所有人脸,同...

大大大大风车
02/14
5.1K
11
【直播】OSC源创会第87期报名开始

本期直播视频链接 https://pan.baidu.com/s/1rfBFbNbU_hAN1aKZ4vREiQ 密码:bk2b 2020 年的春天过得不太顺利,为了战胜疫情,每个人都在贡献自己的力量,医护人员无畏“逆行”冲向“前线”,志...

举个栗子OSC
03/09
3.5K
15
百度AI快车道-目标检测深圳场

12月14日,百度AI快车道将走进深圳带来关于目标检测的“深度干货”,为CV开发者“撒福利”!本期PaddleDetection目标检测专场,将由两位百度深度学习技术平台部高级工程师进行专业讲解。他们...

lucywsq
2019/12/09
9
0
戴口罩也能刷门禁?疫情下AnalyticDB亮出社区管理的宝藏神器!

1、背景介绍 疫情肆虐,有效隔离是尽快战胜病毒的有效手段,多个地方政府都提出了严格的居民出行管理条例,例如杭州市余杭区2月3日发布了实行“十项从严”管控措施: 这给社区管理带来新的挑...

Roin123
02/21
0
0
戴口罩如何刷门禁?阿里工程师亮出“刷脸神器”

1. 背景介绍 疫情肆虐,有效隔离是尽快战胜病毒的有效手段,多个地方政府都提出了严格的居民出行管理条例,例如杭州市余杭区2月3日发布了实行“十项从严”管控措施: 这给社区管理带来新的挑...

云栖号
02/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

夏令时和时区最佳实践 - Daylight saving time and time zone best practices [closed]

问题: I am hoping to make this question and the answers to it the definitive guide to dealing with daylight saving time, in particular for dealing with the actual change overs.......

技术盛宴
28分钟前
11
0
SSM框架整合

mybatis逆向工程 mybatis-generator生成pojo、mapper接口及映射文件 mapper放到e3-manager-dao层中 导入sql到数据库中; 导入逆向工程工具,配置xml文件 运行main方法 重复运行main不会覆盖!...

七宝1
56分钟前
30
0
OSChina 周日乱弹 —— 和网友的第一次开房经历

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @薛定谔的兄弟 :分享洛神有语创建的歌单「我喜欢的音乐」: 《Ljósið》- Ólafur Arnalds 手机党少年们想听歌,请使劲儿戳(这里) @xiaos...

小小编辑
今天
31
0
程序员职业生涯指引

程序员应该尽早规划自己的职业生涯 为什么写 众所周知 IT 这一行到了一定的年龄、大部分人都或多或少有危机感,特别是今年全国乃至全球发生的疫情、导致整体经济受到很大的影响、这次的疫情影...

科比可比克
今天
11
0
JVM调优实战分析

一、查看服务器项目JVM参数以及参数分析 1、jps 命令 : 列出系统中所有的 Java 应用程序以及PID 如下图所示,26647就是我部署在服务器的一个小项目的 PID 2、jmap命令:查看堆的使用情况 如...

IT-Mamba
今天
42
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部