助力生产质量检验,基于YOLOV5实现香烟质量缺陷检测

news2024/9/24 20:30:28

生产质量环境的检验始终是一个热门的应用场景,在之前一些项目和文章中我也做过一些相关的事情,比如PCB电路板相关的,如下:

《助力质量生产,基于目标检测模型MobileNetV2-YOLOv3-Lite实现PCB电路板缺陷检测》

本质的目的就是想基于AI的能力来实现生产产品质控的自动巡检,尽可能地降低人工成本,当然了完全自动化的巡检可能在初期也是会存在风险的,这里主要就是一种AI赋能的场景思维,这里我主要是基于香烟的小批量数据集来实践香烟质量的缺陷问题检测,首先看下效果:

在模型选型层面,因为这里主要是自己实践性质的项目,暂未成为商业项目,这里直接使用的就是yolov5的原生项目,数据集也是小批量的数据集,这个后期如果想要提升性能的话建议是可以扩大样本量用更好的模型来尝试构建模型的。

简单看下数据:

只有几百张的数据,这个数据仅仅是为了演示拍摄获取的,并非真实生产环境里面的数据。

yolov5官方项目在这里,截图如下:

star增长速度还是很快的。

这里yolov5s.yaml文件如下:

#Parameters
nc: 2  # number of classes
depth_multiple: 0.33  # model depth multiple
width_multiple: 0.50  # 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], 1, Concat, [1]],  # cat head 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)
  ]

默认100个epoch的迭代计算,训练完成结果如下所示:

batch检测实例如下所示:

这里的目标对象只有两种:空头和异物,分别表示:香烟空头和香烟烟草存在异物。

同样,这里开发专用界面使得推理可视化,如下:

上传图像:

推理检测:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/140614.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

含泪赔了近200万,我终于明白不是什么人都能干电商的……

文|螳螂观察 作者|图霖 又是一年年货节,围绕电商相关话题的讨论正在增多。 都说现在入行做电商十有九亏,但《螳螂观察》注意到一组数据:截至7月31日,过去一年入淘创业者的数量仍在增长,淘宝天猫净增了近120万商家&a…

每天五分钟机器学习:如何使用误差分析来构造最优的异常检测算法

本文重点 在异常检测算法中,我们要做的事情之一就是使用正态(高斯)分布来对特征向量进行建模p(xi;μi,σi),所以输入到算法中的特征变量很重要。 特征变量不符合高斯分布怎么办 首先我们需要知道一点,有些特征变量的数据并不符合高斯分布,但是我们假设它们符合高斯分…

中西方哲学史概要

中西方哲学史概要 哲学的定义 哲学在古希腊是 “爱智慧” 的意思,一切的知识都可以称之为“哲学”,它是对基本和普遍之问题研究的学科,是关于世界观的理论体系。很多人说懂哲学的人很可怕,其实这是错误的,因为真正懂哲…

【linux命令】查看进程活动的命令

ps进程信息 ps用于显示系统内的所有进程 -l或l 采用详细的格式来显示进程状况 常用方式: ps -elf 和ps -ef rootecs-x-large-2-linux-20200309113627:/home/etcd_msg_server# ps -ef UID PID PPID C STIME TTY TIME CMD root 1 …

C++入门 -- 模板初阶与string简介

目录 模板: 函数模板 类模板 STL简介: string: string类对象的常见构造 string类对象的容量操作 string类对象的访问及遍历 模板: 在C语言阶段,当我们需要交换两个int类型的数据就需要写一个支持int类型交换的Swap函数…

如何使用ArcGIS Pro自动矢量化建筑

概述相信你在使用ArcGIS Pro的时候已经发现了一个问题,那就是ArcGIS Pro没有ArcScan,确实在ArcGIS Pro中Esri移除了ArcScan,没有了ArcScan我们如何自动矢量化地图,从地图中提取建筑等要素呢,这里为大家介绍另外一种方法…

可视化深度学习模型的方法/工具

介绍 可以使用 TensorBoard 来可视化深度学习模型。TensorBoard 是 TensorFlow 中的一个可视化工具,可以帮助您在训练期间和训练后可视化模型的训练曲线、模型结构、激活值和权值分布等信息。可以使用 TensorBoard 的命令行工具或在 Jupyter 笔记本中使用 TensorBoard magic …

【Linux】权限理解(粘滞位设置)

目  录1 权限的概念2 权限管理2.1 文件类型及其访问权限2.2 文件权限值的表示方法2.3 文件访问权限设置2.4 目录权限(粘滞位)1 权限的概念 所谓权限,实际上是对人的约束,在Linux中,是对普通用户的约束。一件事情&…

蓝桥杯嵌入式之 Keil 仿真与调试

这篇文章为大家讲解 蓝桥杯嵌入式的 Keil 仿真与调试 , 这在比赛和今后的工作中都是常用的。大家看完后一定会对此有一个深刻的认识。 文章目录前言一、调试器的准备工作:1.在 Keil uVision集成开发环境下,选择CMSIS-DAP Debugger调试器。2.在…

final关键字深入解析

final关键字特性 final关键字在java中使用非常广泛,可以申明成员变量、方法、类、本地变量。一旦将引用声明为final,将无法再改变这个引用。final关键字还能保证内存同步,本博客将会从final关键字的特性到从java内存层面保证同步讲解。这个内…

SpringBoot项目从18.18M瘦身到0.18M

一、前言 SpringBoot部署起来虽然简单,如果服务器部署在公司内网,速度还行,但是如果部署在公网(阿里云等云服务器上),部署起来实在头疼:编译出来的 Jar 包很大,如果工程引入了许多开…

GAMES101作业6及课程总结(重点解决SAH扩展作业)

这次作业相对于作业5会麻烦一点点,而且框架相较于作业五的也麻烦了一点,当然作业的难点其实主要还是在扩展作业SAH那块。 目录课程总结与理解(光线追踪)框架梳理作业一:光线生成作业二:光线-三角形相交作业…

Neo4j图数据库 批量写入与查询

1 前言 1-1 简介 工作中需要对所有的实体数据进行存储构建实体知识图谱,为基于知识图谱的问答提供数据基础。选择使用Neo4j作为数据库进行存储。以下是关于Neo4j的简介。 1-2 任务背景 将处理好的实体数据(共计1100万)写入图数据库中,并且提供查询接口…

量子计算(二十):量子算法简介

文章目录 量子算法简介 一、概述 二、量子经典混合算法 量子算法简介 一、概述 量子算法是在现实的量子计算模型上运行的算法,最常用的模型是计算的量子电路模型。经典(或非量子)算法是一种有限的指令序列,或一步地解决问题的…

乐视--996、内卷、裁员环境下一朵“奇葩”

在2022.12.28日我们发表了一篇“为什么四天工作制才是企业良药,而非裁员”,大家认为四天工作制与我们的距离就像实现“一个小目标”一样,不太可能。这不他来了,乐视来了,他真的来了,“鸡毛真的上天了”。他来了他来了他…

SQL技巧:使用AVG()函数计算占比

计算方式对比 一般计算占比,比如转换率、留存率等,都是先分组求和再相除得到结果,但是在一定的条件下,可以直接使用AVG()求出百分比。 比如,要求统计报名转化率,报名转化率公式为转化率报名人数/浏览人数…

内核解读之内存管理(8)内存模型

文章目录基本的术语CONFIG_FLATMEM(平坦内存模型)稀疏的内存模型基本的术语 在介绍内存模型之前需要了解一些基本的知识。 1、什么是page frame? 在linux操作系统中,物理内存被分成一页页的page frame来管理,具体pa…

c++11 标准模板(STL)(std::deque)(八)

定义于头文件 <deque> std::deque 修改器 擦除元素 std::deque<T,Allocator>::erase iterator erase( iterator pos ); (1)(C11 前) iterator erase( const_iterator pos ); (C11 起) iterator erase( iterator first, iterator last ); (2)(C11 前) iterator …

即时编译助力人大金仓KES分析能力飞跃

随着数字化技术对各行各业的不断渗透&#xff0c;人大金仓在金融、能源、电信等行业逐步进入深水区&#xff0c;面临越来越多的核心类系统改造升级&#xff0c;这些系统不仅需要满足在线交易系统运行的高实时性要求&#xff0c;还需要保证高效分析能力以帮助客户进行业务决策。…

红米pro14笔记本系统故障怎么U盘重装系统?

红米pro14笔记本系统故障怎么U盘重装系统&#xff1f;今天和大家一起来分享如何使用U盘重装系统的方法分享。有用户的红米pro14笔记本系统出现了一些问题需要进行重新安装&#xff0c;那么今天我们就一起来分享看看怎么U盘重装系统的方法吧。 准备工作&#xff1a; 1、U盘一个&…