微小目标识别研究(1)——白酒杂质识别

news2024/11/19 23:22:50

文章目录

    • 研究项目简介
      • 基于机器视觉技术的白酒杂质检测系统研究(大概浏览)
        • 研究背景
        • 国内外研究现状和发展趋势
          • 国内
          • 国外
          • 总结
        • 白酒杂质检测算法
        • YOLO V3算法
        • K近邻算法
            • 滤波处理
            • 动态范围增强
            • 形态学图像处理
            • 运动目标提取
        • 数据集制作
          • 数据增强
      • 基于机器视觉的液体药品义务检测系统研究
        • 原理
      • 保健酒中可见异物视觉检测系统
        • 原理
      • 中药口服液中可见异物检测关键算法研究
        • 原理
    • 个人研究方法
      • 思路
        • 问题
      • 小目标选择算法确定
        • 算法选择

研究项目简介

基于机器视觉技术的白酒杂质检测系统研究(大概浏览)

研究背景

  • 白酒因其特殊的生产工艺,在诸如发酵、蒸馏,灌装,封口等多个生产环节中都有可能 引入杂质。企业中一般都通过人工方法来筛选含有杂质的白酒,该方法无法准确、快速地检测出不合格 的酒品。与每年迅猛增长的白酒市场相对应的却是在可见异物检测方式上的落后。

国内外研究现状和发展趋势

  • 高压液相色谱法(HighperformanceLiquidChromatography,HPLC),单次检测成本高,仍需人工参与,检测仪器昂贵。
国内
  • 概述: 使用专用光源作为照明,通过高速工业相 机拍摄图像,图像传输到上位机,利用上位机中的特定的杂质检测软件,对液体中是否含有 杂质进行判断。

  • 灰度序列图像检测液体中小目标杂质的算法

    • 2002
    • 理论:根据异物在序列图像中的移动特性进行目标跟踪从而实现目标检测的方法
  • 基于机器视觉的全自动灯检机关键技术研究

    • 2008
    • 通过帧差等方 法提取杂质的固定特征,在序列图像中提取杂质的运动轨迹,根据运动轨迹的特点来识 别杂质
  • 灌装液体药品质量的机器视觉检测与识别

    • 2009
    • 目标的多帧图像提取杂质的运动轨迹,使用支持向量机识别杂质
  • .大输液在线视觉检测系统的研究

    • 2010
    • 用图像间的交互方差系数简历序列图像背景,使用质心迭代和卡尔曼滤波跟踪杂质运动轨迹,识别杂质
  • 基于智能视觉的透明液体可见异物检测软件设计

    • 2015
    • 通过二次帧差与能量积累 法提取液体中的异物,根据SIFT特征度量的MeanShift算法跟踪细小异物,得到异物的运动特征和形状特征来判断透明液体中是否含有杂质
  • 一种基于特征分类的液体内杂质检测方法

    • 2019
    • 多尺度小波变换进行边缘检测,提取 目标后对目标的圆形度、灰度均值、灰度均匀度进行计算,利用特征值对目标进行分类从而 识别出杂质。静态
国外
  • Detection and classification of foreign substances in medical vials using MLP neural network and SVM
    • MLP神经网络和SVM算法,多个检测工位拍摄,
  • Expert system based on computer vision to estimate the content of impurities in olive oil samples
    • 彩色直方图进行,通过SVM和ANN进行实现
总结
  • 基于机器视觉的酒液智能检测系统研究与开发[J】
    • 采用多帧检测是出于环境复杂,检测对象多样的情况,针对白酒,可以设定特定的环境,减少影响因素,使用单帧检测。
  • 自动灯检机系统及其信号处理方法的研究
    • D检测方式是指动静态区分方法,将待检测的安瓿瓶 高速旋转,利用制动装置使其短暂静止在拍摄点,在静止位获取图像进行识别。这

白酒杂质检测算法

YOLO V3算法

  • 不是很了解,可以去读读论文
  • 由于yolo v3这个网络模型能够江多尺度信息进行融合,然后进行预测,减少了信息传递过程中的损失,对于小目标检测具有优秀的检测能力

在这里插入图片描述

K近邻算法

  • 具体步骤如下,需要很多图像预处理步骤。

在这里插入图片描述

滤波处理
  • 消除噪声,并且保留杂质的图像
  • 自适应中值滤波:就是中值滤波,只不过增加了一些判定,通过判定掩膜区域中心点和最值的关系,来决定是否是噪声,如果不是噪声,输出原来的像素点。如果是噪声,就取中间值。

在这里插入图片描述

动态范围增强
  • 增加图片的灰度范围,范围越大,图片的细节就越明显,更加有利于检测
  • 直方图均衡化,使得颜色分布差异更加明显

在这里插入图片描述

形态学图像处理
  • 目的:减少不必要的信息
  • 膨胀和腐蚀:侵蚀图像中物体的边界
  • 开运算和闭运算:消除二值化之后的图像中很多细小的半点和毛刺
运动目标提取
  • 连续帧帧差法结果:就是连续三帧进行相减,然后将生成的结果在进行二值化,获取动态目标的位置变化

在这里插入图片描述

数据集制作

  • 分类效果

在这里插入图片描述

  • 采用PASCAL VOC数据格式,使用LabelImg目标检测工具,进行标注。
  • 分为四类:fragment为药渣和塑料,hair为毛发,bubble为泡泡,scratch为瓶身脏污
数据增强
  • 这玩意目前的矿机都是有这部分的预处理模块的

在这里插入图片描述

基于机器视觉的液体药品义务检测系统研究

原理

  • 利用溶液中运动异物具有的两个明显的特征:运动轨迹在时间轴上是连续的,异物图像的灰度和背景具有一定的差异性,本文基于时间序列图像处理算法,流程图如下
    在这里插入图片描述
  • 连续帧做处理,标记出异物的特征,但是描述不够详细,方法和上一篇的KNN在图像预处理阶段大差不差。

保健酒中可见异物视觉检测系统

原理

  • 通过机械反转,使产品液体中的杂质与背景之间产生运动差异,利用异物在序列图像中运动的连续性,提取运动目标,通过对异物的测量实现目标的快读分割和识别。

在这里插入图片描述

  • 增强目标和背景的对比度,根据异物运动在序列图像中呈现的差异性提取出目标,
  • 形态学滤波增强对比度:膨胀腐蚀,开闭运算,实际使用的Top-hat变换,Bottom-hat变换

中药口服液中可见异物检测关键算法研究

原理

  • 在图像预处理 部分,采用二次差分与能量累积方法抑制图像中因外界因素(如瓶壁外 的划痕、灰尘、纹理等)而产生的静态背景干扰,选用中值滤波器方法 去除图像中的随机噪声,使用数学形态学算子增强图像的对比度。
  • 在可 见异物的检测与判定部分,本文采用自适应阈值分割技术选取图像的最 佳分割阈值,使阈值随环境因素的变化而自主改变,提出了基于Otsu多 帧序列图像的自适应阂值可见异物检测算法,实现多帧序列图像中异物 目标的检测。
  • 这个文章,还是详细的,尤其是关于图像预处理那一块,可以跟着做

个人研究方法

思路

  • 基于上述使用yolo V4的思路,我的初步思路如下
    • 将现有的图片转成数据集,注意,无论怎么做数据增强,我们这里始终是小样本,然后我们输入的是原图,并不是帧差的图片
    • 确定图片预处理的滤波,最好是上文已经试验过的自适应中值滤波
    • 确定使用的小目标检测的方法,注意一定要是针对小样本数据的,然后分类的话最好做一个二分类
    • 试试现有模型的效果
  • 直接找目标检测的论文,我觉得有点困难,所以我觉得还是复现一下他的文章,有了经验,然后在更换检测算法,先复现基于KNN的。使用C++进行复现吧。

问题

  • 我们的目标就是要检测出是否有杂质,并不是区分具体的杂质。常规的小目标检测都是针对遥感图像,有具体的数据集标准和分类,目前的数据集很少,而且看不出来有什么区别,我不是很确定计算机能不能看出来,这里保险起见,我还是复现目前已经有的算法吧。

小目标选择算法确定

  • 在github上找到了针对微笑目标选择相关总结,具体连接

算法选择

  • Advancing Plain Vision Transformer Towards Remote Sensing Foundation Model
    • **当前在DOTA-V1.0遥感图像数据集中,识别率最高,为81.24%。**在原始的transformer上增加了旋转可变大小的窗口注意力机制,降低运算,提高效果。
    • 遥感图像也是针对小目标识别的,我觉得可以试试看,相关的参考链接
    • tarnformer是小样本学习的吗?参数量很多,如果数据样本很小,会导致模型过拟合吗?
      *(看的有点烦了,感觉都不会,先复现基本的,然后再往下做吧

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

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

相关文章

学习笔记 —— 基于C加速的Python高效计算 (Cython pybind11)

目录引言Cython示例介绍第一阶段优化第二阶段优化Cython Annotation tool优化方法第三阶段优化比对下 JIT的Numba总结pybind11LinksIntroductionImplementationImplementation CmakecytpesCython & pybind11 性能比较TODO Implementation Cmake --pybind11 Cython & py…

Linux SPI 驱动实验

目录 一、Linux 下 SPI 驱动框架简介 1、SPI 主机驱动 2、SPI 设备驱动 SPI 设备数据收发处理流程 3、SPI 设备和驱动匹配过程 二、添加SPI 设备信息 1、添加 ICM20608 所使用的 IO 2、 在 ecspi3 节点追加 icm20608 子节点 三、编写 ICM20608 驱动 1、修改makefile​…

深度学习目标检测ui界面-交通标志检测识别

深度学习目标检测ui界面-交通标志检测识别 为了将算法封装起来,博主尝试了实验pyqt5的上位机界面进行封装,其中遇到了一些坑举给大家避开。这里加载的训练模型参考之前写的博客: 自动驾驶目标检测项目实战(一)—基于深度学习框架yolov的交通…

C++ 二级指针的理解

指针一直很抽象,不是很容易理解,尤其是二级指针。有天路上,脑子里突然想起二级指针,并开始思考什么是二级指针,经过分析和调试验证,对二级指针有了进一步的认识。故写下此篇。 一级指针 假设变量 a、p 的…

消息队列 rabbitmq 学习

RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统。他遵循Mozilla Public License开源协议。 MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数…

[YOLO] yolov4 博客笔记

在有了yolov3的基础上,yolov4的网络结构还是很容易看懂的。 这篇博客写的整个yolov4的网络概况 【经典论文解读】YOLOv4 目标检测https://blog.csdn.net/qq_41204464/article/details/119673960?ops_request_misc%257B%2522request%255Fid%2522%253A%25221677916…

SpringBoot一行代码实现文件上传20个平台!少写代码到极致!

又是做好人好事的一天,有个小可爱私下问我有没有好用的springboot文件上传工具,这不巧了嘛,正好我私藏了一个好东西,顺便给小伙伴们也分享一下,demo地址放在文末了。文件上传在平常不过的一个功能,做后端开…

SpringBoot (三) 整合数据库访问 jdbcTemplate、MyBatis

哈喽,大家好,我是有勇气的牛排(全网同名)🐮🐮🐮 有问题的小伙伴欢迎在文末评论,点赞、收藏是对我最大的支持!!!。 Spring Data了解下&#xff1…

实习日记_C#——Day2

运算符重载 通过关键字operator后跟运算符的符号来定义。 public static Box operator (Box b, Box c) {Box box new Box();box.height b.height c.height;return box; }Box box1 new Box(1); Box box2 new Box(2); Box box3 new Box(); bo3 box1 box2;接口&#xff…

基于灵动 MM32 微控制器的便携式血氧仪方案

基于灵动 MM32 微控制器的便携式血氧仪: - Cortex-M0() 最高主频 72MHz 可实现血氧饱和度信号采集、算法操作和 LED 显示操作 - 高性能的 1Msps 12b ADC 能对光电采样结果进行大数据量的暂存和处理,提高采样的效率并有助于对结果做高精度的计算 - 100…

排序中常见的一些指标

1、错误率与精度 错误率与精度是分类任务中最常用的两种性能度量,错误率是指分类错误的样本占样本总数的比例,精度则是分类正确的样本数占样本总数的比例。 错误率: 精度: 2、准确率/召回率/FScore True Positive(真正例, TP)&…

SpringMVC中的常用注解

Java知识点总结:想看的可以从这里进入 目录3.2、常用的注解3.2、常用的注解 Controller:代表此类是一个控制器,需要配置包的扫描。Spring MVC 是通过组件扫描机制查找应用中的控制器类的 在Spring6.0之后要求控制层必须添加该注解才会被识别成…

c++11 标准模板(STL)(std::unordered_map)(二)

定义于头文件 <unordered_map> template< class Key, class T, class Hash std::hash<Key>, class KeyEqual std::equal_to<Key>, class Allocator std::allocator< std::pair<const Key, T> > > class unordered…

计算机网络-- 网络层(day06)

文章目录网络层思维导图IPv4地址的应用规划定长的子网掩码变长的子网掩码VLSMIP数据报的发送和转发过程主机发送IP数据报路由器转发IP数据报静态路由选择动态路由选择路由选择协议概述常见的路由选择协议路由器的基本结构路由信息协议RIP的基本工作原理开放最短路径优先OSPF的基…

nandflash VS norflash

介绍下nandflash NAND Flash是一种非易失性存储器&#xff08;Non-Volatile Memory&#xff0c;简称NVM&#xff09;&#xff0c;以闪存为基础&#xff0c;是目前应用最广泛的存储器之一。 它利用了固态电路技术&#xff0c;可以将数百万个晶体管集成在一张芯片上&#xff0c…

从输入URL到Web页面呈现的全过程

当用户在浏览器的地址栏中输入 URL 并点击回车后&#xff0c;页面是如何呈现的。 简单来说&#xff0c;当用户在浏览器的地址栏中输入 URL 并点击回车后&#xff0c;浏览器从服务端获取资源&#xff0c;然后将内容显示在页面上。这个过程经过了&#xff1a;浏览器缓存 -> D…

利用Nginx给RStudio-Server配置https

前篇文档&#xff0c;我这边写了安装RStudio-Server的方法。默认是http的访问方式&#xff0c;现在我们需要将其改成https的访问方式。 1、给服务器安装Nginx&#xff1a;参照之前的安装Nginx的方法。 2、创建/usr/local/nginx/ssl目录&#xff1a; mkdir /usr/local/nginx/ss…

P6入门:了解P6 Professional 工具栏及地图分享

目录 引言 相关分享 引言 凭借更大的灵活性和增强的自定义功能&#xff0c;最新版本的 Oracle Primavera P6 Professional 的界面比早期版本有了巨大改进。对于有经验的伙伴来说&#xff0c;它仍然是熟悉的领域&#xff0c;几乎所有预期的功能都显示在前面。该界面可以更好地…

【汇编】三、寄存器(一只 Assember 的成长史)

嗨~你好呀&#xff01; 我是一名初二学生&#xff0c;热爱计算机&#xff0c;码龄两年。最近开始学习汇编&#xff0c;希望通过 Blog 的形式记录下自己的学习过程&#xff0c;也和更多人分享。 上篇系列文章链接&#xff1a;【汇编】二、预备知识&#xff08;一只 Assember 的…

Spring Boot结合IDEA自带Maven插件快速切换profile | Spring Cloud 10

一、前言 IDEA是目前 Java 开发者中使用最多的开发工具&#xff0c;它有着简约的设计风格&#xff0c;强大的集成工具&#xff0c;便利的快捷键。 在项目项目整个开发运维周期中&#xff0c;我们的的项目往往需要根据不同的环境&#xff0c;使用不同的文件配置。 比如以下部…