精华内容
下载资源
问答
  • 可以在arm嵌入式上运行的检测代码,无需编译直接运行,已在树莓派上测试过
  • TensorFlow 2.0深度学习案例实战 基于40万表格数据集TableBank,用MaskRCNN做表格检测 《基于深度学习的自然语言处理》中/英PDF Deep Learning 中文版初版-周志华团队 【全套视频课】最全的目标检测算法系列讲解,...


    向AI转型的程序员都关注了这个号????????????

    机器学习AI算法工程   公众号:datayx

    训练模型前的准备

    • A.数据准备

    数据的标注仍然采用VOC格式的数据标注形式,如果是其他的标注形式比如COCO请自行实现相关代码。将数据最终转化为如下形式:

    path_filename, x1, y1, x2, y2, class_name

    格式说明

    代码及运行教程,数据集  获取:

    关注微信公众号 datayx  然后回复  安全帽  即可获取。

    AI项目体验地址 https://loveai.tech

    可以运行如下代码实现数据集的准备工作:

    python3 ./data/data_pro.py

    将在./data文件夹下生成annotation.txt文件,这样训练数据的准备工作即完成。

    B.配置文件准备

    根据自己的训练集和训练任务修改./keras_frcnn/config.py的配置文件,相关参数的解释和配置如下:

    训练模型

    预训练模型的下载地址:https://github.com/fchollet/deep-learning-models

    Shell下运行:

    python3 train_frcnn.py --path="./data/annotation.txt" --network="vgg" --input_weight_path="./pre_train/vgg16_weights_tf_kernels_notop.h5"
    

    windows下直接运行我们写好的批处理文件:

    run_train.bat

    模型预测

    将需要测试的图像和视频拷贝到./new_test文件夹

    • A.单张图像推断

    Shell下运行:

    python3 test_frcnn.py --path="./new_test"
    

    windows下直接运行我们写好的批处理文件:

    run_inference.bat
    
    • B.视频推断

    Shell下运行:

    python3 test_frcnn_video.py --path="./new_test/test_video.mp4"
    

    windows下直接运行我们写好的批处理文件:

    test_video.bat

    效果展示

    基于yolo5工地安全帽和禁入危险区域识别系统,附数据集

    基于PyTorch+YOLOv4的口罩佩戴检测,附数据集


    阅读过本文的人还看了以下文章:

    TensorFlow 2.0深度学习案例实战

    基于40万表格数据集TableBank,用MaskRCNN做表格检测

    《基于深度学习的自然语言处理》中/英PDF

    Deep Learning 中文版初版-周志华团队

    【全套视频课】最全的目标检测算法系列讲解,通俗易懂!

    《美团机器学习实践》_美团算法团队.pdf

    《深度学习入门:基于Python的理论与实现》高清中文PDF+源码

    特征提取与图像处理(第二版).pdf

    python就业班学习视频,从入门到实战项目

    2019最新《PyTorch自然语言处理》英、中文版PDF+源码

    《21个项目玩转深度学习:基于TensorFlow的实践详解》完整版PDF+附书代码

    《深度学习之pytorch》pdf+附书源码

    PyTorch深度学习快速实战入门《pytorch-handbook》

    【下载】豆瓣评分8.1,《机器学习实战:基于Scikit-Learn和TensorFlow》

    《Python数据分析与挖掘实战》PDF+完整源码

    汽车行业完整知识图谱项目实战视频(全23课)

    李沐大神开源《动手学深度学习》,加州伯克利深度学习(2019春)教材

    笔记、代码清晰易懂!李航《统计学习方法》最新资源全套!

    《神经网络与深度学习》最新2018版中英PDF+源码

    将机器学习模型部署为REST API

    FashionAI服装属性标签图像识别Top1-5方案分享

    重要开源!CNN-RNN-CTC 实现手写汉字识别

    yolo3 检测出图像中的不规则汉字

    同样是机器学习算法工程师,你的面试为什么过不了?

    前海征信大数据算法:风险概率预测

    【Keras】完整实现‘交通标志’分类、‘票据’分类两个项目,让你掌握深度学习图像分类

    VGG16迁移学习,实现医学图像识别分类工程项目

    特征工程(一)

    特征工程(二) :文本数据的展开、过滤和分块

    特征工程(三):特征缩放,从词袋到 TF-IDF

    特征工程(四): 类别特征

    特征工程(五): PCA 降维

    特征工程(六): 非线性特征提取和模型堆叠

    特征工程(七):图像特征提取和深度学习

    如何利用全新的决策树集成级联结构gcForest做特征工程并打分?

    Machine Learning Yearning 中文翻译稿

    蚂蚁金服2018秋招-算法工程师(共四面)通过

    全球AI挑战-场景分类的比赛源码(多模型融合)

    斯坦福CS230官方指南:CNN、RNN及使用技巧速查(打印收藏)

    python+flask搭建CNN在线识别手写中文网站

    中科院Kaggle全球文本匹配竞赛华人第1名团队-深度学习与特征工程

    不断更新资源

    深度学习、机器学习、数据分析、python

     搜索公众号添加: datayx  


    机大数据技术与机器学习工程

     搜索公众号添加: datanlp

    长按图片,识别二维码

    展开全文
  • 数据集包含了工人的安全帽场景,适用于安全帽检测,数据已标注txt格式。 数据包含三个标注类别,head、person和Hard Hat。
  • 针对已有安全帽佩戴检测算法对部分遮挡、尺寸不一和小目标存在检测难度大、准确率低的问题,提出了基于改进的Faster RCNN和多部件结合的安全帽佩戴检测方法。在原始Faster RCNN上运用多尺度训练和增加锚点数量增强...
  • 本文聚焦于复杂场景下对工作人员是否佩戴安全帽的实时检测.YOLO (You Only Look Once)是当前最为先进的实时目标检测算法,在检测精度和速度上都取得了良好的效果,将YOLO应用于安全帽检测.针对未佩戴安全帽单类...
  • 可以在arm嵌入式设备上运行的代码,在树莓派上测试过,无需编译直接运行
  • 一种融合HOG人体目标检测和SVM分类器的安全帽识别方法
  • 安全帽数据集: 1、1万多张标注好的数据图片, 2、类别:person、hat, 3、标签格式分别为txt和xml格式两种, 4、直接用于YOLO目标检测
  • 再次,预定义一个语义规则,结合目标检测结釆来提取视觉概念;最后,将提取出的视觉概念填充进由图像字幕标注生成的语句模板,以生成关于施工场景中工人安全帽佩戴的图像描述语句。使用Ubuntu16.04系统和 Keras深度...
  • 深度学习实现安全帽佩戴的检测

    千次阅读 2019-11-12 10:35:00
    向AI转型的程序员都关注了这个号??????????...机器学习AI算法工程 公众号:datayx01....在不同光线下不论采用什么颜色空间(RGB、HSV什么)都无法分离出合理的色彩,更不要提判断和检测了。有感于实际的...

    640?wx_fmt=gif

    向AI转型的程序员都关注了这个号👇👇👇

    机器学习AI算法工程   公众号:datayx

    01.   概述

    对于图像识别,采用传统的算法(opencv的一些算法),判断形状、颜色等等,我们在实验室和办公场所做测试,效果还不错,和容易识别出来。一旦到了工业现场,图像完全不行,连人和车都识别不出来。在不同光线下不论采用什么颜色空间(RGB、HSV什么)都无法分离出合理的色彩,更不要提判断和检测了。有感于实际的现场环境,决定放弃传统的算法,拿起深度学习的工具,来搞定这个项目。

    640?wx_fmt=png

    02.  数据准备

    高大上的人工智能背后,一定是苦逼的数据准备,深度学习的模型,需要成千上万的训练和测试数据,这些数据的采集和整理,还有数据的清洗都是体力活啊。

    640?wx_fmt=png

    采用SSD的算法(用于物体检测的深度学习主流算法之一)检测出图片中的人。

    640?wx_fmt=png

    640?wx_fmt=png

    640?wx_fmt=png

    640?wx_fmt=png

    这样就可以建立自己的训练集:train和test (带不带帽子的标注需要人工去做... 这个还是很苦逼)

    640?wx_fmt=png

    03. 搭建模型

    考虑到标准的图片只有128*128,特征不是很多,就动手搭建一个不算深的深度学习模型,采用卷积神经网络处理图形特征,搞过cnn的同学会觉得so easy。

    640?wx_fmt=png

    这是个只有三层的卷积神经网络,我们就拿这个模型进行训练和学习吧。

    04. 训练神经网络

    深度学习的训练是极其需要强大的算力的,多亏我们的模型较小,另外我们还DIY了一台深度学习服务器,有了强大的GPU做运算。

    具体代码如下:

    640?wx_fmt=png

    640?wx_fmt=png

    640?wx_fmt=png

    640?wx_fmt=png

    05. 结论

    通过简单的cnn模型和一个小规模的数据集的训练,基本上达到了目标。

    原文地址  https://www.jianshu.com/p/2101f5e5e577

    阿里云双11大促  服务器ECS  数据库 全场1折

    活动地址

    640?wx_fmt=png

    1核2G1M,86一年,¥229三年

    2核4G3M,¥799三年

    2核8G5M,¥1399三年

    ......


    阅读过本文的人还看了以下文章:

    展开全文
  • 安全帽目标检测数据集,标注好的图片,类别:person、hat,标签格式分别为txt和xml格式两种,数量一共有5000多张,可以用于多种算法的安全帽检测
  • yolov4训练自己的数据集实现安全帽佩戴检测

    万次阅读 热门讨论 2020-07-07 22:46:41
    本次用yolov4来实现人佩戴安全帽检测,若未佩戴安全帽则将人脸框出来,若佩戴安全帽,则将安全帽以及人脸框出来,多说无益,直接看效果吧!!! 效果还是不错的,那么接下来就跟我一起进入yolov4的实操吧!!! ...

    昨儿立下来的flag,今天还是要含泪完成的,抓紧时间赶呀!!!

    本次用yolov4来实现人佩戴安全帽检测,若未佩戴安全帽则将人脸框出来,若佩戴安全帽,则将安全帽以及人脸框出来,多说无益,直接看效果吧!!!

    效果还是不错的,那么接下来就跟我一起进入yolov4的实操吧!!!

    一、环境配置

    老规矩,环境走起!!!本次采用pytorch框架来实现

    • Python: 3.7.4
    • Torch==1.2.0
    • Keras: 2.2.4
    • numpy:1.17.4

    还是建议用anaconda通过虚拟环境的方式来快速搭建!

    二、数据准备

    本次采用安全帽佩戴检测的数据集,为voc格式的数据集。数据集含图片以及需要检测物体的位置信息。如下图所示:

    三、YoloV4理论介绍

    容我在正式开始介绍之前,要个抱抱!

    由于yolov4的创新点很多,本次的话主要针对几个点介绍吧!

    • 网络的改进:主干特征提取网络的改进由DarkNet53变为CSPDarkNet53;并对特征提取网络也进行了改进,使用了SPP和PANet结构
    • 数据增强:使用了Mosaic数据增强方式
    • LOSS改进:使用CIOU作为回归LOSS
    • 激活函数改进:使用了MISH激活函数
    • 标签平滑Smoothing:一种用于防止数据过拟合的trick
    • 余弦退火学习率:可以使网络收敛速度加快
    • 自对抗训练:自对抗训练也是一种新的数据增强方法,可以一定程度上抵抗对抗攻击。

    1.网络改进

    a.主干提取网络:DarkNet53->CSPDarkNet53

    其中具体关于CSPDarkNet53的介绍,可以先去看一下有关CSPNet这个网络,其用来增强CNN的学习能力。

    CSPnet结构并不算复杂,就是将原来的残差块的堆叠进行了一个拆分,拆成左右两部分:

    • 主干部分继续进行原来的残差块的堆叠;
    • 另一部分则像一个残差边一样,经过少量处理直接连接到最后。

    b.特征加强网络SPP

    同上,具体有关SPP的介绍,参考SPPNet特征金字塔这个网络。

    在特征加强网络SPP中,分别利用四个不同尺度的最大池化进行处理,其可以它能够极大地增加感受野,分离出最显著的上下文特征。最大池化的池化核大小分别为13x13、9x9、5x5、1x1(1x1即无处理)。

    c.特征再次加强PANet网络结构

    其在之后又采取了进一步反复的特征提取的工作,上采样,下采样,拼接等操作,其思路来源于2018年的PANet,一种实例分割算法,其具体结构由反复提升特征的意思特征金字塔从下到上的特征提取后,还需要实现(b)中从上到下的特征提取。

    2.数据增强方式

    采用Mosaic数据增强方式,即

    将4张不同的图片镶嵌到一张图中,其优点是:

    • 混合四张具有不同语义信息的图片,可以让检测器检测超出常规语境的目标,增强模型的鲁棒性。
    • 由于BN是从四张图片计算得到的,所以可以减少对大的mini-batch的依赖。

    3.CIOU回归LOSS

    IoU是比值的概念即预测框和真实框的交集比并集,对目标物体的scale是不敏感的。然而常用的BBox的回归损失优化和IoU优化不是完全等价的,寻常的IoU无法直接优化没有重叠的部分。

    于是有人提出直接使用IOU作为回归优化loss,CIOU是其中非常优秀的一种想法。

    CIOU将目标与anchor之间的距离,重叠率、尺度以及惩罚项都考虑进去,使得目标框回归变得更加稳定,不会像IoU和GIoU一样出现训练过程中发散等问题。而惩罚因子把预测框长宽比拟合目标框的长宽比考虑进去。

    4.MISH激活函数

    激活函数改为Mish激活函数

    5.Label Smoothing标签平滑

    其主要针对之前的one-hot中存在的问题:

    • 无法保证模型的泛化能力,容易造成过拟合;
    • 全概率和0概率鼓励所属类别和其他类别之间的差距尽可能加大,而由梯度有界可知,这种情况很难适应。会造成模型过于相信预测的类别。

    提出的一种针对one-hot的标签采取的措施:

    new_onehot_labels = onehot_labels * (1 - label_smoothing) + label_smoothing / num_classes

    例如:原始的标签是0、1,在平滑后变成0.005(如果是二分类)、0.995,也就是说对分类准确做了一点惩罚,让模型不可以分类的太准确,太准确容易过拟合。

    6.余弦退火学习率

    也是目前在pytorch框架中比较常见的trick,上升的时候使用线性上升,下降的时候模拟cos函数下降。执行多次。

    9.自对抗的训练方式

    针对这个还真没接触过,看网上的话作用是如下:

    自对抗训练也是一种新的数据增强方法,可以一定程度上抵抗对抗攻击。其包括两个阶段,每个阶段进行一次前向传播和一次反向传播。

    • 第一阶段,CNN通过反向传播改变图片信息,而不是改变网络权值。通过这种方式,CNN可以进行对抗性攻击,改变原始图像,造成图像上没有目标的假象。
    • 第二阶段,对修改后的图像进行正常的目标检测。

    其它的点,看日后有空是否能填坑吧!!!

    四、训练过程

    1.准备数据集

    准备安全帽数据,使用VOC格式的数据进行训练

    • 训练前将标签文件放在VOCdevkit文件夹下的VOC2007文件夹下的Annotation中。
    • 训练前将图片文件放在VOCdevkit文件夹下的VOC2007文件夹下的JPEGImages中。
    • 在训练前利用voc2yolo4.py文件生成对应的txt。
    VOCdevkit
       -VOC2007
       	├─ImageSets    # 存放数据集列表文件,由voc2yolo3.py文件生成
       	├─Annotations  # 存放数据集中图片文件
       	├─JPEGImages   # 存放图片标签,xml 格式
       	└─voc2yolo4.py # 用来生成数据集列表文件
    

    2.运行生成Yolov4所需的数据

    再运行根目录voc_annotation.py,运行前需要将voc_annotation文件中classes改成你自己的classes。
    每一行对应其图片位置及其真实框的位置

    3.修改voc_classes.txt

    在训练前需要修改model_data里面的voc_classes.txt文件,需要将classes改成你自己的classes。

    4.修改yolo_anchors.txt

    运行kmeans_for_anchors.py生成yolo_anchors.txt

    5.运行

    运行train.py 或者train_with_tensorboard即可开始训练

    • 在main函数下:Cosine_lr参数可用于控制使用余弦退火衰减学习率
    • 在main函数下:mosaic参数用于控制实现mosaic数据增强
    • 在main函数下:smooth_label用于控制是否实现标签平滑
    • 在main函数下:model_path用于加载预训练模型
    • save_dir用于控制模型保存位置和tensorboard可视化保存的位置
    • 训练分两次:先冻结模型参数后解冻,两次采取不同的学习率

    6.测试图片

    运行predict_img.py,输入图片路径即可得到结果。

    效果我觉得蛮好的,应该是比yolov3好些吧,当然我也用了efficientdet也尝试了,还没测试效果。这次就先到这里吧!!!

    那这次就下次再更新吧,下次更新点一些之前做过的内容吧!!!当然手里头还有个抽烟的数据集,等之后拿efficientdet跑跑!!!

    展开全文
  • 本文将详细介绍YOLO目标检测算法,该算法支持各种目标检测,包括:安全帽、汽车、造价、交通标志......等。 本文以本人的毕业设计题目《基于YOLOv4的安全帽检测算法》为例详细介绍实现过程。 首先,放上最终的...

    本文将详细介绍YOLO目标检测算法,该算法支持各种目标检测,包括:安全帽、汽车、造价、交通标志......等。

    代做、辅导、答疑、技术支持:

    代做/辅导/答疑:毕业设计:<博主qq:914406940>
    
    资料下载/学习交流群:436609296

    本文以本人的毕业设计题目《基于YOLOv4的安全帽检测算法》为例详细介绍实现过程。

    首先,放上最终的实验数据和检测效果对比图:

     算法检测的目标区域

     

     图4-12 中午检测结果示例

      图4-13 傍晚检测结果示例

     图4-14 晴天检测结果示例

      图4-15 阴天检测结果示例


    第三章 YOLO-Hel安全帽佩戴情况检测算法

    3.1 YOLO系列算法介绍

    YOLO是英文“You only look once”的缩写,表示目标检测算法只需要对目标图片作一次卷积就能完成目标检测,简单快速,而不需要使用滑动窗口移动一次检测一次,从而导致检测速度非常慢。YOLO系列算法是单阶段(one-stage)目标检测算法的代表,单阶段表示目标检测算法能够同时生成目标边界框以及对目标进行分类,使得整个检测过程简单快速,此外,还有两阶段(two-stage)以及多阶段(muti-stage)的目标检测算法,其中RCNN系列算法是两阶段目标检测算法的代表,该系列算法主要特点是生成目标边界框以及对目标进行分类分成两个阶段完成,整个过程需要先经过候选框生成网络再经过分类网络,检测速度相对较慢,但检测精度相对较高。本文基于YOLOv4算法解决安全帽佩戴情况检测问题。

    3.1.1 YOLOv1算法

    YOLOv1算法由Joseph Redmon等人提出,YOLOv1通过一个卷积神经网络同时预测目标的外界框以及所属的类别,其检测过程如图3-1所示。

    图3-1 YOLOv1检测过程

    YOLOv1的检测原理是限定最后特征图的大小是S×S ,根据感受野的原理,特征图中每一个元素都对应着原图的一块区域,所以这就相当于把原图分成了S×S 个小块,若目标的中心落某一块,那么这一块就负责检测该目标,具体就是预测目标的边界框以及属于各个类别的概率,最后通过非最大值抑制( Non-maximal suppression,NMS)算法将大量冗余或得分低的预测框抑制掉,将剩下的预测框作为最终结果,该过程如图3-2所示。

     图3-2 YOLOv1算法原理

     3.1.2 YOLOv2算法

    YOLOv1检测速度很快,但是缺点也比较明显,那就是容易出现定位错误问题,而且相对于Fast R-CNN等两阶段的目标检测算法,YOLOv1的召回率比较低,容易出现漏检的情况,这是因为YOLOv1最终的特征图尺寸是7×7,特征图中每个位置虽然包含两个检测器但是只能检测一个目标,所以导致其检测的粒度不够细,在目标比较小或者目标分布密集的情况下很容易导致漏检。YOLOv2针对YOLOv1的不足作出了多方面的改进,主要包括以下几个方面。

    1. 采用了新的网络结构,摒弃了全连接,使用了全卷积的结构,因此允许输入任意大小的图片,此外引入了批量正则化(Batch Normalization,BN),可以有效防止过拟合。受到ResNet的启发,使用了跨层的连接,使得梯度传播更加容易,加快训练速度。
    2. 借鉴faster RCNN,引入了锚框(anchor boxes),并且最终的特征图的尺寸为13×13,特征图中的每个位置都对应着5个不同的锚框,每个锚框都可以单独检测物体,从而使得网络的检测能力大大增强,提高了召回率。与faster RCNN所不同的是,YOLOv2的anchor不是手动指定,而是使用kmeans算法对数据集聚类得到,所以更加符合数据的实际情况,也使得预测边界框位置更加准确。
    3. 改变了边界框相关参数的预测方式,不再像YOLOv1那样直接预测边界框的宽、高以及中心点坐标,而是先预测txtytwth ,然后再算出边界框的大小和位置信息,计算过程如图3-3所示。其中bxbybwbh 分别表示目标边界框的中心横坐标、中心纵坐标、宽和高,txtytwth 表示网络的输出,pwph 分别表示锚框的框高,cxcy 表示特征所在格子的左上角横、纵坐标。

    图3-3 YOLOv2中边界框位置计算过程

     3.1.3 YOLOv3算法

    YOLOv2用于最终检测的特征图尺寸是13×13,同时引入了锚框(anchor),所以相对于YOLOv1,YOLOv2在召回率方面有了很大的提高,但由于YOLOv2依然只在最后的尺度特征图进行检测,导致检测尺度范围小、检测粒度不够细,在目标密集或目标面积小的情况下效果不好,YOLOv3针对YOLOv2的缺点,在其基础上做出了一些改进,检测精度有了很大的提高,其主要贡献如下。

    1. 设计了新的特征提取网络Darknet53,该网络使用了连续的3×3以及1×1的卷积核,同时受到ResNet网络结构的启发使用了一些短连接,有利于梯度的传播以及特征的融合。
    2. 引入了特征金字塔网络FPN(Feature Pyramid Network),既可以将不同尺度的特征进行融合,又实现了多尺度检测,FPN的结构如图3-4所示,它形成了一个自上而下的通路(Top-bottom pathway),可以将高层特征及低层特征结合起来,提高特征的表征能力,从而有效提高算法的检测性能。如果输入图片的尺寸是608×608,那么最后YOLOv3分别在19×19、38×38以及76×76三种尺寸的特征图上进行检测,如图3-5所示,并且每个特征图上的各个栅格都对应三种不同的锚框(anchor),所以大大提高了召回率,同时使得网络更加适用于目标尺度范围变化大的情况。

      图3-4 特征金字塔网络(FPN)

      图3-5 YOLOv3网络结构示意图
    3. 在分类过程环节中舍弃了softmax,改用二元交叉熵损失,使得网络适用于多标签分类。

      3.1.4 YOLOv4算法

    在卷积神经网络方面,目前已经产生了大量能够提高准确率的方法,有一些方法只用于某些模型或者某些任务上,但有些方法(如批量正则化、残差连接)已经广泛应用卷积神经网络模型、不同的数据集或任务上。YOLOv4[67] 的主要贡献在于将那些由不同研究人员在不同论文上提出的方法进行整合起来,并通过实验证明其对于提高目标检测性能的有效性,最终得到了一个新的、具有强劲性能的目标检测算法,在速度方面不输YOLOv3,在精度方面该算法却全面超越YOLOv3,与EfficinetDet、ATSS等算法相比YOLOv4在速度方面有着巨大的优势,精度也能与其相提并论,如图3-6所示。

     

    图3-6 YOLOv4与其他检测算法对比

    YOLOv4的主要包含了以下创新点:

    1. 使用了CSPDarkNet53作为特征提取的网络,如图3-7所示,CSPDarkNet53使用了Mish激活函数,更有利于网络的训练,同时使用了CSP(Cross-Stage-Partial-connections,跨阶段部分连接)结构,该结构可以有效地防止不同地层使用重复的梯度信息,提升卷积神经网络的学习能力。此外,YOLOv4在特征融合以及多尺度检测网络方面结合了FPN和PAN(Path aggregation network,路径汇聚网络)两种结构,如图3-8所示,使得多尺度该网络同时具有从上往下的路径以及从下网上的路径,更加有利于特征的融合,能有效提高检测性能。
      图3-7 YOLOv4的网络结构

      图3-8 YOLOv4特征融合与多尺度检测网络
    2. 使用了CutMix以及Mosaic数据增强方法,同时使用了DropBlock正则化和类标签平滑方法,大大增强了模型的鲁棒性。

    第四章 实验过程与结果分析

    4.1 实验平台及实验方案

    4.1.1 实验平台介绍

    本文的所有实验都在一台炫龙毁灭者KP2个人电脑上完成,该个人电脑搭载了标准版的英特尔i5-8400处理器,16GB的运行内存以及显存容量为6GB的NVIDIA GetForce GTX 1060显卡。在软件方面,本文的所有实验都在Windows操作系统下完成,安全帽佩戴情况检测算法都在PyCharm软件上使用Python语言实现,其中深度学习框架使用了PyTorch。

    4.1.2 实验方案

    本文的主要目的是通过安全帽佩戴情况检测算法检测施工场地中相关人员的安全帽佩戴情况,能够准确定位并分辨出相关的工作人员是否正确佩戴安全帽。为了验证本文算法的有效性和鲁棒性,本文利用Canon相机在某一具体施工场地采用大致相同的角度采集的一系列包含不同时间段、不同天气情况的视频来进行实验,具体的实验方案为:

    1. 采用早上、中午以及傍晚三个时间段的视频测试并比较算法在不同时间段、不同光照情况下的检测性能。
    2. 采用阴天、晴天以及雾霾天三种天气环境下的视频测试并比较算法在不同天气情况下的检测性能。
    3. 对于改进前后的算法分别进行前面两个实验,综合分析实验结果,比较算法改进前后的性能。

    4.2 数据集采集与处理

    4.2.1 安全帽佩戴情况数据集收集

    训练深度学习模型需要比较多高质量、具有多样性的数据,因为这样能够让网络能够学习到足够信息,使得的模型具有鲁棒性以及泛化性。目前GitHub上以及Kaggle等平台都有与安全帽检测相关的数据集可以免费下载,但是这些不符合本文的实验要求,所以必须重新采集数据。本文在一个具体的施工场地中使用Canon相机以大致相同的角度采集了上午、中午和晚上三个不同时段以及阴天、晴天和雾霾天气三种不同天气情况下共35个视频,每个视频时长十几秒到数分钟不等,所有视频的分辨率均为1280×720。最后将视频分为两部分,每部分均包含上述不同时间段以及不同天气情况下的视频,其中第一部分用作训练集和验证集,第二部分数据用作测试集,在实验过程中用来比较算法的性能。为了制作训练集和验证集,将第一部分的所有视频都拆分成帧,由于同一个视频里面包含大量内容非常接近的帧,如果全部采用这些图片作为训练集或验证集,不仅大大增加标注的工作量而且不太利于模型的学习,所以使用了脚本对各个视频所产生的帧进行抽样,具体就是每隔60帧或者100帧采集一帧加入最终的训练集或者验证集,最终得到了3100多张图片,按8:2的比例分为训练集和验证集。而第二部分视频则全部拆分成帧,共1800张图片,全部标注完成后留到后面算法测试时使用。

    部分图片如图4-1所示:

     

     图4-1 部分图片示例

    4.2.2 训练数据的预处理

    为了得到训练数据,这里需要将4.2.1节中经过拆分视频以及采样步骤后得到的图片进行标注。首先使用脚本将所有图片以数字的形式进行重命名,如“000000.jpg”、“000001.jpg”等,且名字不能重复,然后使用图像标注软件LabelImg对所有图片进行标注,得到安全帽佩戴情况检测所需要的数据集。LabelImg的操作界面如图4.2所示,在标注过程中使用方框将需要检测的区域框住,并指定类型,为了方便算法判断施工人员是否佩戴安全帽,这里将从肩膀开始一直到头顶的这一块区域作为检测的目标,如果施工人员佩戴了安全帽则把其归为“wearing”一类,如果没有佩戴安全帽则把其归为“non_wearing”一类。

     图4-2 LabelImg操作界面

     经过LabelImg标注后,每张图片都会对应生成一个.xml文件,该文件存放了该图片所有的标注信息,主要包括图片所属的文件夹、图片的具体路径、图片的尺寸以及每个目标的位置信息和类别信息,如图4.3所示。

    图4-3 xml文件内容

     4.3 算法性能的评价指标

    为了更加科学地衡量算法的性能,这里引进一系列在目标检测领域常用的评价指标,具体包括Precision(精度或者查准率)、Recall(召回率或者查全率)、Average Precison(平均精度,AP)、Average Recall(平均召回率,AR)、F1度量、交并比以及用于衡量算法处理速度的帧率。

    为了更好地理解Precision和Recall的计算原理以及计算过程,这里引入如表4-1所示的检测结果混淆矩阵。

    表4-1 检测结果混淆矩阵

    正例

    TP(真正例)

    FN(假反例)

    反例

    FP(假正例)

    TN(真反例)

    上面的混淆矩阵是相对某一类而言的,检测目标中有多少个类别,那么检测结果就能产生多少个混淆矩阵,那么就能相对应地计算各个类别的Precison以及Recall等指标。在本文的实验中真正例(True Positive,TP)表示那些属于该类并且被目标检测算法正确定位并且正确归类的目标;假反例(False Negative,FN)表示那些属于该类但被目标检测算法错误归类或者漏检的目标;假正例(False Positive,FP)表示那些不属于该类,但是被目标检测算法归为该类的目标;真反例(True Negative,TN)表示那些不属于该类,且目标检测算法也没有把其归为该类的目标。为了更加直观地理解TP、FP以及FN的定义,图4.4给出了一个具体的例子。

    图4-4 TP,FP,FN示例

    以上为摘抄的部分章节 ,完成论文及相关资料可私信博主。

    代做/辅导:毕业设计/课程设计<QQ: 914406940>

    资料/答疑/学习交流Q群:540219450

    完整目录如下:

    目录

    摘要. I

    ABSTRACT III

    目录. V

    CONTENTS VII

    第一章 绪论. 9

    1.1本课题研究背景及研究意义... 9

    1.2 安全帽检测相关问题的研究现状... 10

    1.2.1基于传感器的检测方法... 10

    1.2.2基于视觉检测的方法... 10

    1.3目标检测算法的研究现状... 13

    1.4本文主要内容和章节安排... 15

    1.5本章小结... 16

    第二章 卷积神经网络基础知识. 17

    2.1网络结构... 17

    2.2激活函数... 19

    2.3损失函数... 22

    2.4优化算法... 23

    2.5本章小结... 24

    第三章 YOLO-Hel安全帽佩戴情况检测算法. 25

    3.1YOLO系列算法介绍... 25

    3.1.1YOLOv1算法... 25

    3.1.2YOLOv2算法... 27

    3.1.3YOLOv3算法... 28

    3.1.4YOLOv4算法... 29

    3.2精简网络结构及聚类优化锚框参数... 31

    3.2.1YOLOv4锚框机制... 31

    3.2.2聚类分析本文目标的宽、高分布情况... 32

    3.2.3精简YOLOv4网络结构及优化锚框参数... 35

    3.3引入注意力模块提高算法性能... 37

    3.4本章小结... 40

    第四章 实验过程与结果分析. 41

    4.1实验平台及实验方案... 41

    4.1.1实验平台介绍... 41

    4.1.2实验方案... 41

    4.2数据集采集与处理... 41

    4.2.1安全帽佩戴情况数据集收集... 41

    4.2.2训练数据的预处理... 43

    4.3算法性能的评价指标... 44

    4.4基于视频流的安全帽佩戴情况检测实验... 47

    4.4.1安全帽佩戴情况检测算法的训练及检测过程... 47

    4.4.2实验数据及检测效果对比分析... 50

    4.4.3算法鲁棒性分析... 56

    4.4.4算法模型大小及检测速度对比分析... 57

    4.5本章小结... 58

    总结与展望. 59

    总结... 59

    展望... 60

    参考文献. 61

    展开全文
  • 安全帽检测

    2021-07-31 22:29:03
    安全帽检测 算法介绍:安全帽检测算法主要用工厂,建筑工地的入口,工作区域,可以进入作业区域的人员进行自动检测...目标检测算法基于yolov5,数据集10000+张 均为txt格式。 图文效果: 欢迎点赞 评论 留言 收藏 ...
  • 大致思路是: ...该算法在行人检测算法的基础上,识别检测出来的行人的头部,并根据头部的颜色值,得到该行人所佩戴安全帽的颜色,然后根据生产规范中得到对应人的身份。 gabor ,sobel,meanshift ...
  • darknet版yolov3人、安全帽、坦克三个类别的目标检测训练权重,配置文件为data/voc.names ; cfg/voc.data ; cfg/yolov3-voc.cfg ; 类别名按顺序依次为tank、hat、person;训练好的权重保存在backup文件夹中;附附...
  • YOLOv5进行目标检测的"落地化"应用:安全帽佩戴检测 该项目使用了YOLOv5s、YOLOv5m、YOLOv5l来训练安全帽佩戴检测数据集,代码和权重均已开源!安全帽佩戴检测数据集也是开源的(共含7581 张图像)! 项目链接: ...
  • YOLOv5是最近推出的轻量且高性能的实时目标检测方法。YOLOv5使用PyTorch实现,含有很多业界前沿和常用的技巧,可以作为很好的代码阅读案例,让我们深入探究其实现原理,其中不少知识点的代码可以作为相关项目的借鉴...
  • 其中的视频跟踪最近的各頂会论文出现最多的是单目标跟踪,而我们要解决的确是多目标跟踪,最近出的较好的能实用性的是deepSort;真实的施工场景中摄像头的远近,拍摄的遮挡,工人服装的统一,重叠,违规动作幅度的...
  • 参考了博客,是一个口罩的识别。 在用标注工具标注自己的数据集后,转换数据集格式,voc的XML格式转换csv格式,csv再转成tensorflow所需要的标签和图片合体的record格式。 XML-CSV 网盘 vln2 CSV-record 源码中就给...
  • “作为目标检测的鸿篇巨制YOLOV3,用来做安全帽检测非常合适”01—Yolov3简介Yolo_v3使用了darknet-53的前面的52层(没有全连接层),yolo_v3这个网络是一个...
  • 工地安全帽反光衣穿戴检测 1. 前言 随着工地信息化管理水平越来越高,工人的安全管理越来越严格,需要使用一些辅助手段来实现工人安全自动化管理。工地实名制通道对工人身份识别的同时可以实现对工人是否穿戴安全帽...
  • 安全帽检测方法 我们中多少人曾经说过以下话: “我希望这行得通!” ? 毫无疑问,我们大多数人可能会不止一次。 这不是一个鼓舞人心的短语,因为它揭示了人们对我们的能力或所测试的功能的怀疑。 不幸的是,这句...
  • 一、YOLO v3简介YOLO v3可以说是当前目标检测算法的集大成者,速度和精度都达到了不错的水准。不了解的同学可以看一下吴恩达的深度学习中有关YOLO的讲解,然后在读一下这个博客,写的很详细。最近一直热衷于AI研习社...
  • 开源 | 安全帽佩戴检测数据集

    千次阅读 2021-01-05 10:15:00
    最近图像领域比较火热的两个方向都与复工复产相关,一方面是口罩识别,另一方面,就是智能工地安全领域中的安全帽佩戴检测,很多同学或许没想到印象的大工地现在已经随着计算机视觉领域的发展如此智能...
  • Amusi 发现一个很棒的开源项目,利用YOLOv5进行目标检测的"落地化"应用:安全帽佩戴检测。 该项目使用了YOLOv5s、YOLOv5m、YOLOv5l来训练安全帽佩戴检测数据集,代码和权重均已开源!安全帽佩戴检测数据集也是开源的...
  • 安全帽 hat helmet识别算法,智慧工地

    千次阅读 2021-11-26 13:38:39
    人头检测安全帽helmet检测
  • 开源一个安全帽佩戴检测数据集及预训练模型

    千次阅读 多人点赞 2019-10-26 09:24:29
    公司一个同事介绍安全帽...同时简要介绍下实践上如何完成一个端到端的目标检测任务。可以看下效果图: 同时该模型也可以做人头检测,效果如下: 一、背景介绍 最近几年深度学习的发展让很多计算机视觉任务落...
  • 安全帽识别算法

    2021-07-19 14:44:24
    应用背景:安全帽作为一种最常见和实用的个人防护用具,能够有效地防止和减轻外来危险源对头部的伤害。但在现场操作过程中,安全帽的佩戴很容易人为忽略,引发了不少人身伤害事故。为了保证工作人员都能在作业中佩戴...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,342
精华内容 1,736
关键字:

目标检测安全帽