BIFPN是一种比较经典有效的特征融合手段,在很多检测模型中都有集成应用,实际表现也验证了BIFPN的有效性,这里并不是要探讨BIFPN的原理内容,而是想集成这项技术,提升原有模型的性能表现,在我之前的一些文章中也有使用到BIFPN这项技术,感兴趣的话可以自行移步阅读。

《基于yolov5s+bifpn实践隧道裂缝裂痕检测》

《基于融合SPD+BIFPN+CBAM改进YOLOv5的奶牛检测识别分析系统开发》

《激情绿茵,助力2022卡塔尔世界杯——基于改进的YOLO模型玩转足球检测分析系统》

本文主要是基于苹果缺陷瑕疵的数据集来构建yolov5+bifpn模型完成瑕疵缺陷的检测模型的开发,首先看下效果图:

接下来看下对应的模型yaml文件,如下:

#Parameters
nc: 1  # number of classes
depth_multiple: 1.0  # model depth multiple
width_multiple: 1.0  # layer channel multiple
anchors:- [10,13, 16,30, 33,23]  # P3/8- [30,61, 62,45, 59,119]  # P4/16- [116,90, 156,198, 373,326]  # P5/32#Backbone
backbone:# [from, number, module, args][[-1, 1, Conv, [64, 6, 2, 2]],                    # 0-P1/2[-1, 1, Conv, [128, 3, 2]],                      # 1-P2/4[-1, 3, C3, [128]],[-1, 1, Conv, [256, 3, 2]],                      # 3-P3/8[-1, 6, C3, [256]],[-1, 1, Conv, [512, 3, 2]],                      # 5-P4/16[-1, 9, C3, [512]],[-1, 1, Conv, [1024, 3, 2]],                     # 7-P5/32[-1, 3, C3, [1024]],[-1, 1, SPPF, [1024, 5]],                        # 9]#Head
head:[[-1, 1, Conv, [512, 1, 1]],[-1, 1, nn.Upsample, [None, 2, 'nearest']],[[-1, 6], 1, Concat, [1]],                      # cat backbone P4[-1, 3, C3, [512, False]],                      # 13[-1, 1, Conv, [256, 1, 1]],[-1, 1, nn.Upsample, [None, 2, 'nearest']],[[-1, 4], 1, Concat, [1]],                      # cat backbone P3[-1, 3, C3, [256, False]],                      # 17 (P3/8-small)[-1, 1, Conv, [256, 3, 2]],[[-1, 14, 6], 1, Concat, [1]],                  # cat P4[-1, 3, C3, [512, False]],                      # 20 (P4/16-medium)[-1, 1, Conv, [512, 3, 2]],[[-1, 10], 1, Concat, [1]],                     # cat head P5[-1, 3, C3, [1024, False]],                     # 23 (P5/32-large)[[17, 20, 23], 1, Detect, [nc, anchors]],       # Detect(P3, P4, P5)]

接下来看下使用的数据集:

大部分来自于网络源数据采集获取,这里不管任何形式的虫害、皲裂、腐败等都归类为缺陷瑕疵,所以这里待检测的目标对象就只有一类了。

YOLO格式标注数据如下所示:

实例标注内容如下:

0 0.590734 0.474227 0.200772 0.319588
0 0.374317 0.630909 0.431694 0.243636
0 0.659449 0.394472 0.389764 0.396985

VOC格式标注数据如下:

实例标注内容如下:

<annotation><folder>images</folder><filename>0bb23687-1599-4069-a024-68e2ff0b32d2</filename><path>0bb23687-1599-4069-a024-68e2ff0b32d2</path><source><database>Unknown</database></source><size><width>225</width><height>225</height><depth>3</depth></size><segmented>0</segmented><object><name>defect</name><pose>Unspecified</pose><truncated>0</truncated><difficult>0</difficult><bndbox><xmin>16</xmin><ymin>46</ymin><xmax>78</xmax><ymax>114</ymax></bndbox></object><object><name>defect</name><pose>Unspecified</pose><truncated>0</truncated><difficult>0</difficult><bndbox><xmin>72</xmin><ymin>117</ymin><xmax>135</xmax><ymax>200</ymax></bndbox></object><object><name>defect</name><pose>Unspecified</pose><truncated>0</truncated><difficult>0</difficult><bndbox><xmin>130</xmin><ymin>76</ymin><xmax>215</xmax><ymax>147</ymax></bndbox></object><object><name>defect</name><pose>Unspecified</pose><truncated>0</truncated><difficult>0</difficult><bndbox><xmin>84</xmin><ymin>35</ymin><xmax>144</xmax><ymax>87</ymax></bndbox></object>
</annotation>

因为数据量不大,这里在GPU模式下面完成训练花费的时长很短,训练完成结果文件如下:

LABEL数据可视化如下所示:

F1值曲线和PR曲线如下所示:

混淆矩阵如下:

训练batch检测实例如下:

最后基于专用的界面完成可视化推理,如下所示:

上传图像:

检测推理:

基于轻量级YOLOV5+BIFPN的苹果瑕疵检测识别分析系统相关推荐

  1. 基于轻量级YOLOv5模型开发构建鸟巢检测识别分析系统

    鸟巢相信大家都不陌生,这里的鸟巢不是说的是北京鸟巢,而是我们平常司空见惯的鸟儿搭建出来的鸟巢,用于日暮栖息的,很多用电设施或者是大树上面都能看到有很多鸟巢,有些鸟巢的存在对于电力系统设施的安全存在一定 ...

  2. 基于融合SPD+BIFPN+CBAM改进YOLOv5的奶牛检测识别分析系统开发

    在我之前的几篇文章中分别应用了不同的tricks来改进yolov5模型如下: 加入针对小目标的SPD-Conv模块 <yolov5s融合SPD-Conv用于提升小目标和低分辨率图像检测性能实践五 ...

  3. 基于yolov5轻量级的学生上课姿势检测识别分析系统

    在我之前的博文中已经做过关于人体姿势识别人体姿态检测的博文,都是比较早期的技术模型了,随机技术的迭代更新,很多更加出色的模型陆续出现,这里基于一些比较好用的轻量级模型开发的姿态检测模型. 原始博文如下 ...

  4. 探索工业智能检测,基于轻量级YOLOv5s开发构建焊接缺陷检测识别系统

    前面也有讲过将智能模型应用和工业等领域结合起来是有不错市场前景的,比如:布匹瑕疵检测.瓷砖瑕疵检测.PCB缺陷检测等等,在工业领域内也有很多可为的方向,本文的核心目的就是想要基于目标检测模型来开发构建 ...

  5. 基于YOLOv5+SE注意力+SPD模块的海星检测识别分析系统

    在很多的项目实战中验证分析注意力机制的加入对于模型最终性能的提升发挥着积极正向的作用,在我之前的一些文章里面也做过了一些尝试,这里主要是想基于轻量级的s系列模型来开发构建海底小目标生物海星检测系统,在 ...

  6. YOLOV5融合SE注意力机制和SwinTransformer模块开发实践的中国象棋检测识别分析系统

    本文紧接前文: <基于yolov5s实践国际象棋目标检测模型开发> <yolov5s融合SPD-Conv用于提升小目标和低分辨率图像检测性能实践五子棋检测识别> 首先来看下最终 ...

  7. 基于YOLOv5+C3CBAM+CBAM注意力的海底生物[海参、海胆、扇贝、海星]检测识别分析系统

    在我前面的一些文章中也有用到过很多次注意力的集成来提升原生检测模型的性能,这里同样是加入了注意力机制,区别在于,这里同时在两处加入了注意力机制,第一处是讲CBAM集成进入原生的C3模块中,在特征提取部 ...

  8. 基于深度学习的高精度牙齿健康检测识别系统(PyTorch+Pyside6+YOLOv5模型)

    摘要:基于深度学习的高精度牙齿健康检测识别系统可用于日常生活中检测牙齿健康状况,利用深度学习算法可实现图片.视频.摄像头等方式的牙齿目标检测识别,另外支持结果可视化与图片或视频检测结果的导出.本系统采 ...

  9. 【CV/Matlab系列】基于图像处理的苹果质量检测和分级系统【含Matlab源码】

    DATE: 2020.10.18 文章目录 前言 1.代码获取方式 2.效果展示 2.1.示例1 2.2.示例2 前言 在之前大学毕设时,设计了一种基于图像处理的苹果质量检测和分级系统.采用matla ...

最新文章

  1. 【Python】序列通用操作
  2. 弹出提示框 自动消失
  3. 从0到1,了解NLP中的文本相似度 1
  4. 初学Java你有这些疑惑吗?本文给你几个建议
  5. java 函数式编程 示例_功能Java示例 第8部分–更多纯函数
  6. 什么是透明传输 点对多传输? 它们有哪些经典应用和优势特点
  7. JEECG J2EE敏捷开发框架(代码一键生成)
  8. 脚本(js)控制页面输入
  9. coreboot学习3:启动流程跟踪之bootblock阶段
  10. YOLOv5的详细使用教程,以及使用yolov5训练自己的数据集
  11. 百度AI人脸识别与检测五:学生人脸识别打卡签到系统之百度AI人脸识别
  12. cad 2019 mac安装破解详细图文教程
  13. Java GUI+MySQL 银行管理系统初级(课程设计)
  14. Star Way To Heaven(LOJ 6322)
  15. 高德地图获取坐标距离_计算两个坐标点之间的距离(高德地图)
  16. (PTA)数据结构(作业)7、栈和队列应用,字符串矩阵,树
  17. 使用mockserver来进行http接口mock
  18. Android 进程间通信方式
  19. ML之interpret:基于titanic泰坦尼克是否获救二分类预测数据集利用interpret实现EBC模型可解释性之全局解释/局部解释案例
  20. 该内存不能为written或read的解决方案

热门文章

  1. excel中上面是数字怎么变为字母
  2. idea设置git忽略文件
  3. RatingBar简单介绍
  4. Android Listview 自定义BaseAdapter的实现及Listview优化示例
  5. 【期末复习资料】物联网信息安全
  6. 横跨“斜杠青年”与“银发一族”,大鹏教育头部效应凸显
  7. Echarts空气质量地图效果
  8. python数据缓存
  9. 如何从地面验证一个已安装微波天线的极化方向
  10. 基于EMQX云服务器的环境调节系统(微信小程序篇)