江西建设质量安全监督网站杭州品牌网站
web/
2025/10/5 6:03:27/
文章来源:
江西建设质量安全监督网站,杭州品牌网站,网站建设的3个基本原则,中介网站建设字幕组双语原文#xff1a;如何使用RetinaNet模型构建面罩检测器英语原文#xff1a;How to build a Face Mask Detector using RetinaNet Model!翻译#xff1a;雷锋字幕组#xff08;李珺毅#xff09;介绍目标检测是计算机视觉中一个非常重要的领域#xff0c;对于自动…字幕组双语原文如何使用RetinaNet模型构建面罩检测器英语原文How to build a Face Mask Detector using RetinaNet Model!翻译雷锋字幕组李珺毅介绍目标检测是计算机视觉中一个非常重要的领域对于自动驾驶、视频监控、医疗应用和许多其他领域都是十分必要的。我们正在努力应对一场规模空前的大流行。全球各地的研究人员都在疯狂地尝试开发COVID-19的疫苗或治疗方法而医生们正努力防止这一流行病席卷整个世界。另一方面许多国家发现了社交距离戴口罩和手套是稍微抑制这种情况的一种方法。最近我有了一个想法用我的深度学习知识来帮助一下现在的情况。在本文中我将向您介绍RetinaNet的实现而不需要什么背景知识和相关工作。最重要的是什么?我们将使用RetinaNet建立一个口罩探测器来帮助我们应对这一持续的流行病。您可以推断相同的想法为你的智能家居构建一个启用ai的解决方案。这个人工智能解决方案将只对戴着口罩和手套的开启大楼的大门。随着无人机的成本随着时间的推移而降低我们看到了航拍数据的激增。因此您可以使用这个RetinaNet模型在航空图像甚至卫星图像中检测不同的对象如汽车(自行车、汽车等)或行人以解决不同的业务问题。所以你可以看到对象检测模型的应用是无穷无尽的。目录 1.RetinaNet是什么 2.RetinaNet的需求 3.RetinaNet网络结构 -1.主干网络 -2.目标分类自网络 -3.目标回归自网络 4.Focal loss 损失函数 5.使用RetianNet模型建立口罩检测器 -1.获取数据 -2.建立数据集 -3.模型训练 -4.模型测试 6.备注RetianNet是什么RetinaNet是最好的单阶段目标检测模型之一它已被证明可以很好地处理密集和小规模的物体。因此它已成为我们在航空和卫星图像中使用的流行目标检测模型。RetianNet的需求RetinaNet是由Facebook AI研究公司引入来解决密集检测问题的。在处理极端的前景-背景类时需要用它来弥补YOLO和SSD等单镜头对象检测器的不平衡和不一致性。RetinaNet的网络结构从本质上讲RetinaNet是由以下基本分组成的1.主干网络自下而上的边路和具有侧连接的自上而下的路径2.目标分类子网络3.目标回归子网络为了更好地理解让我们分别理解架构的每个组件1.主干网络1.自底向上路径:自底向上路径(例如ResNet)用于特征提取。因此它计算不同比例的特征地图而不考虑输入图像的大小。2.具有横向连接的自顶向下路径:自顶向下路径从更高的金字塔层次上采 样空间上较粗糙的特征图横向连接将具有相同空间大小的自顶向下和自底向上的层合并在一起。较高层次的特征图往往具有较小的分辨率但语义上更强。因此更适合于检测较大的物体 相反来自较低级特征图的网格单元具有高分辨率因此更擅长检测较小的对象参见图64。 因此通过自上而下的路径及其与路径的自下而上的横向连接的组合这些操作不需要太多额外的计算因此生成的特征图的每个级别在语义和空间上都可以很强。 因此该体系结构是规模不变的并且可以在速度和准确性方面提供更好的性能。2.目标分类子网络每个FPN层都附加一个全卷积网络(FCN)进行对象分类。如图所示该子网包含3*3个卷积层256个滤波器然后是3*3个卷积层K*A滤波器因此输出的feature map大小为W*H*KA其中W和H与输入特征图的宽度和高度成比例K和A分别为对象类和锚盒的数量。最后采用Sigmoid层(不是softmax层)进行对象分类。而最后一个卷积层之所以有KA滤波器是因为如果从最后一个卷积层得到的feature map中的每个位置都有很多锚盒候选区域那么每个锚盒都有可能被分类为K个类。所以输出的特征图大小将是KA通道或过滤器。3.目标回归子网络回归子网络与分类子网络并行附着在FPN的每个特征图上。回归子网络的设计与分类子网络相同只是最后一个卷积层大小为3*3有4个filter输出的feature map大小为W*H*4A。最后一个卷积层有4个过滤器的原因是为了定位类对象回归子网络为每个锚定盒产生4个数字这些数字预测锚定盒和真实框锚盒之间的相对偏移量(根据中心坐标、宽度和高度)。因此回归子网的输出特征图具有4A滤波器或通道。Focal Loss损失函数Focal LossFL是Cross-Entropy LossCE的改进版本它通过为困难的或容易错误分类的示例即具有嘈杂纹理或部分对象或我们感兴趣的对象的背景分配更多权重来尝试处理类不平衡问题 并简化简单的示例即背景对象。因此“Focal Loss”减少了简单示例带来的损失贡献并提高了纠正错误分类的示例的重要性。 焦点损失只是交叉熵损失函数的扩展它将降低简单示例的权重并将训练重点放在困难样本上。所以为了实现这些研究人员提出了-1- pt代表交叉熵损失可调聚焦参数≥0。 RetinaNet物体检测方法使用焦距损失的α平衡变体其中α 0.25γ 2效果最佳。所以focal loss 的定义是对于γ∈[0,5]的几个值可以看到Focal Loss请参见图1。我们将注意到聚焦损耗的以下特性:1.当示例分类错误且pt小时调制因子接近1并且不影响损失。2.当pt→1时因子变为0并且可以很好地权衡分类良好的示例的损失。3.Focal loss γ平滑地调整了简单示例的权重。 随着γ的增加调制因子的 作用也同样增加。 经过大量实验和试验研究人员发现γ 2最有效注意-当FL 0时FL等于CE。如图蓝色曲线所示直观地看调制因子减小了简单例的损耗贡献扩展了例的低损耗范围。你可以在这篇文章中读到关于Focal loss的详细信息(链接到我的focal loss文章)在这篇文章中我讨论了交叉熵演变成focal lossfocal loss的需要focal loss和交叉熵的比较最重要的是我用了几个例子来解释为什么focal loss比交叉熵好。现在让我们看看用Python实现RetinaNet来构建口罩检测器。使用RetianNet模型建立口罩检测器获取数据任何深度学习模型都需要大量的训练数据才能在测试数据上得到好的结果。在这篇文章中(链接到我的Web文章)我谈到了为您的深度学习项目收集大量图像的Web方法。创建数据集我们首先使用LabelImg工具为训练和验证数据集创建注释。这个优秀的注释工具允许您快速注释对象的边框以训练机器学习模型。您可以在anaconda命令提示符中使用下面的命令来安装它您可以使用如下所示的labelmg工具对每个JPEG文件进行注释它将生成带有每个边框坐标的XML文件。我们将使用这些xml文件来训练我们的模型。模型训练第一步克隆安装keras-retinaNet代码仓库第二步导入所需要的包第三步导入图片和xml文件第三步编写一个可以在训练集上显示边界框的函数注意:最好从一个预先训练好的模型开始而不是从头开始训练一个模型。我们将使用已经在Coco数据集上预先训练好的ResNet50模型。第四步训练RetinaNet模型注意:如果您正在使用谷歌Colab您可以使用下面的代码片段来训练您的模型。但如果你重新训练你的本地Jupyter Notebook或不同的IDE训练然后你可以从命令提示符下面的命令让我们解释一下传递给脚本train.py的每个参数。1.freeze-backbone:冻结主干层当我们使用小数据集时特别有用以避免过拟合2.random-transform:随机变换数据集以获得数据增强3.weights:使用一个预先训练好的模型(您自己的模型或者Fizyr发布的模型)初始化模型4.batch-size:训练批量大小值越高学习曲线越平滑5.step:迭代的步数6.epochs:迭代的次数7.csv:上面的脚本生成的注释文件第五步加载训练好的模型模型测试第六步使用模型进行预测引用http://arxiv.org/abs/1605.06409.https://arxiv.org/pdf/1708.02002.pdfhttps://developers.arcgis.com/python/guide/how-retinanet-works/https://analyticsindiamag.com/what-is-retinanet-ssd-focal-loss/https://github.com/fizyr/keras-retinanethttps://www.freecodecamp.org/news/object-detection-in-colab-with-fizyr-retinanet-efed36ac4af3/https://deeplearningcourses.com/https://blog.zenggyu.com/en/post/2018-12-05/retinanet-explained-and-demystified/备注总而言之我们完成了使用RetinaNet制作面罩检测器的整个过程。 我们创建了一个数据集训练了一个模型并进行了测试这是我的笔记本和数据集的Github存储库。Retina Net是一个功能强大的模型使用Feature Pyramid NetworksResNet作为其骨干。 我能够通过非常有限的数据集和极少的迭代每个迭代有500个步长共6次迭代获得口罩检测器的良好结果。当然你也可以更改阈值。注意1.确保你训练你的模型至少20次迭代以获得好的结果。2.一个好的想法是提交使用RetinaNet模型构建口罩检测器的方法。 人们总是可以根据业务需求调整模型数据和方法。一般来说RetinaNet是开始目标检测项目的一个很好的选择特别是如果您需要快速获得良好的结果。雷锋字幕组是一个由 AI 爱好者组成的翻译团队汇聚五百多位志愿者的力量分享最新的海外AI资讯交流关于人工智能技术领域的行业变革与技术创新的见解。团队成员有大数据专家、算法工程师、图像处理工程师、产品经理、产品运营、IT咨询人、在校师生志愿者们来自IBM、AVL、Adobe、阿里、百度等知名企业北大、清华、港大、中科院、南卡罗莱纳大学、早稻田大学等海内外高校研究所。如果你也是位热爱分享的AI爱好者。欢迎与雷锋字幕组一起学习新知分享成长。雷锋网雷锋网
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/87200.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!