异常检测原理及其在计算机视觉中的应用

news2024/11/18 12:23:29

点击上方“小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达

这篇文章涵盖了三件事,首先什么是视觉角度的异常检测?用于异常检测的技术有哪些?它在哪里使用?

异常检测是什么?

“异常值(又名异常)是数据集中的观察结果,它似乎与该数据集的其余部分不一致”——约翰逊 1992 年

2bd8b0ebc9b2dd6612e5ef91d72f3485.png

什么是离群值/异常值?

“离群值是一种观察结果,它与其他观察结果的偏差如此之大,以至于引起人们怀疑它是由不同的机制产生的”——霍金斯 1980

异常是与常态不同、很少发生并且不符合“模式”其余部分的事件。异常包括,例如:

  • 全球事件导致股市大幅下跌和上涨

  • 工厂或传送带上的故障产品

  • 污染的实验室样本

ec7c5cc635bd9f98edf9fc848ef2d19e.png

c2d8e95b4889239b2afbacb7cb4dc463.png

墙壁异常检测(左图 2 个) 工业部件异常检测(右图 2 个)

为什么要进行异常检测?

✓需要检测各种质量问题以保证良好的质量

✓人工目视检查不能保证对不断变化的产品进行可靠检查

dc6721dc4595269ab00c6aa39ad8803c.png

节省时间:

✓自动目视检查节省时间

34f45b269303632c503b5b45e650acd4.png

省钱:

✓技术(硬件和软件)的进步降低了异常检测的成本,即使是小型企业也能负担得起

0dcef8ec12806214e1814438345e3d5d.png

计算机视觉中如何使用异常检测?

一级图像处理方法

基于传统的图像处理技术,例如边缘检测、特征检测……和测量指标(例如,大小、颜色、位置、周长、圆度、形状……)来描述一个物体 。

6a64ddc7a2676e9a9d6a3d383a17f7df.png

优点:无需培训

缺点:没有概括性

二级机器学习方法

机器学习算法使用计算方法直接从数据中“学习”信息,而不依赖于预先确定的方程式作为模型。

e97c7309ef3751b484cb2974d3e40c7b.png

优点:更少的培训

缺点:泛化程度较低

3 级深度学习方法

基于卷积神经网络检测异常值。训练和推理需要大数据集和高效的硬件

229956c2ebe2f8e8ca94c8ffaca041b4.png

优点:更泛化

缺点:更多培训

小伙伴可能会问“我们应该选择哪种方法呢?” 即使我们的问题与上面的情况完全不同也不必担心,我们提供一个选择的原则:

  1. 从图像处理方法开始。如果数据具有低可变性,这可以提供可靠的解决方案。

  2. 在变量生产下,如果你有一个强大的 GPU 和大量标记的数据/图像。然后,深度学习技术可以更好地处理更多数据,而 GPU 有助于减少训练模型所需的时间。如果不是,那么 ML 方法是最佳选择。

异常检测和数据

异常检测将如何在三种不同的情况下发生,具体取决于数据的情况。

监督:

在这种情况下,训练数据被标记为“好”或“异常”(坏)。监督场景是理想的。这是为数据科学家精心准备的数据集,其中所有数据点都标记为异常或良好的情况。

b6b76fed4548e490cb2cf88a91a1b4ad.png

资源用于结构化数据的流行 ML/DL 算法:

  • 支持向量机学习

  • k 最近邻 (KNN)

  • 贝叶斯网络

  • 决策树

半监督:

在半监督场景中,所有数据都被假定为“好”,并且被“异常”(坏)数据点污染。

c574c0ea7dbc1c8b3dba420e131087b6.png

用于结构化数据的流行 ML/DL 算法:

  • 自动编码器

  • 一类 SVM

  • 高斯混合模型

  • 核密度估计

无监督:

在无监督场景中,训练数据是未标记的,由“好”和“异常”(坏)数据点组成。无监督场景中的数据集没有将其部分标记为好或坏。

“无监督学习中最常见的任务是聚类、表示学习和密度估计。在所有这些情况下,我们都希望在不使用明确提供的标签的情况下了解数据的固有结构。”

d1806493ea142294afb22c574c32386e.png

在无监督场景中,需要一组不同的工具来在非结构化数据中创建顺序。非结构化数据的流行 ML/DL 算法是:

  • 自组织映射 (SOM)

  • K 均值

  • C 均值

  • 期望最大化元算法 (EM)

  • 自适应共振理论 (ART)

  • 一级支持向量机

异常检测示例

App1:使用机器学习技术对无人机进行实时退化识别(Real time degradation identification of UAV using machine learning techniques)

在本文中,作者分析了无人机执行预定任务后的飞行数据流,并实时预测身体部位(在本例中为螺旋桨)的退化程度。

f6ed5afe6d261eff51fbba38c1e99440.png

为了实现这一目标,他们使用 k 最近邻算法作为分类算法,并使用动态时间规整作为距离度量来计算两个航班块之间的相似性。

2a3aa5bed2cb2f608ce473f220c64eac.png

App2:UAV-AdNet:使用深度神经网络进行空中监视的无监督异常检测(

UAV-AdNet: Unsupervised Anomaly Detection using Deep Neural Networks for Aerial Surveillance)

在本文中,作者提出了一种用于鸟瞰图像环境表示的启发式方法和一种基于 DNN 的异常检测方法 (UAV-AdNet),该方法在环境表示和 GPS 标签上联合训练。

d6ad2da219a548f97c118fe800723466.png

在他们的实验中,他们证明了所提出的架构在输入的复制和裁剪连接下具有更好的场景重建性能。他们还观察到,为网络提供 GPS 数据可以增强异常检测性能。

在他们的研究中,作者考虑了以下异常情况:

 (1) 违反私人规则的物体:建筑物背面出现任何人或车辆。建筑物左侧出现任何车辆

(2)违反公共规则的物体:行人只能使用斑马线过马路。自行车只能在自行车道上行驶。除自行车和摩托车外,其他车辆不得在自行车道上骑行或停放。

 (3)寻找可疑物品

89d0b673de1dfe59766fa5e1c9fad0f7.png

App3:监控环境中无人机录制的视频中的异常检测(Anomaly Detection in Videos Recorded by Drones in a Surveillance Context)

本文专门研究了监视环境中的异常检测,特别是针对由无人机录制的监视视频组成的微型无人机视频数据集。本文提出的模型在 MDV 数据集上进行了评估。

尽管它很简单,但该模型达到了最先进的性能。获得的结果表明,这种应用程序的监督学习不太适合异常检测。因为该模型未能检测到它在 MDV 数据集训练期间从未遇到过的情况,这是有问题的,因为即使不是不可能,也很难编译代表许多实例的所有可能异常的数据集。

4a584552fe590eed7e8ec4cbc9cea8f8.png

建议的异常检测器是由卷积神经网络和递归神经网络组成的深度神经网络,使用监督学习进行训练。在他们未来的工作中,他们将专门检查使用无监督学习训练的模型设计,以减少对标记异常数据的需求。

ce1a80a99001d947af625f6c30fe18b1.png

App4:使用航空红外热成像技术自动检测光伏电站:综述(Automatic Inspection of Photovoltaic Power Plants Using Aerial Infrared Thermography: A Review)

提出一种使用空中红外视频进行自动光伏电站检查的有效方法。

本文对光伏电站航空红外热成像 (aIRT) 框架不同任务自动化方法的文献进行了全面回顾,因为这是近年来研究人员深入研究的课题。这些研究大多集中在视觉、IRT 和 aIRT 图像中光伏电站的自主故障检测和分类。在这些研究中,DL 算法的使用提供了良好的结果,在从 aIRT 图像中提取的模块段中检测到的 10 种不同异常类型的故障检测和分类中,准确率高达 90%。

然而,所开发算法的准确性、鲁棒性和泛化性仍然是这些研究的主要挑战,尤其是在处理更多类别的故障和大型光伏电站的检查时。随着公用事业规模光伏电站的容量和规模不断增加,达到千兆瓦和数百公顷的规模,自动化越来越成为一个不仅具有科学意义而且具有经济重要性的问题。因此,仍然必须探索自主程序和分类任务,以提高 aIRT 方法的准确性和适用性。

e9185a4db51ff6b26f1701b93edfb302.png


 

好消息!

小白学视觉知识星球

开始面向外开放啦👇👇👇


 

19c369dda7a7c2d87bd97a034b065b5c.jpeg

下载1:OpenCV-Contrib扩展模块中文版教程

在「小白学视觉」公众号后台回复:扩展模块中文教程,即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。


下载2:Python视觉实战项目52讲
在「小白学视觉」公众号后台回复:Python视觉实战项目,即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。


下载3:OpenCV实战项目20讲
在「小白学视觉」公众号后台回复:OpenCV实战项目20讲,即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。


交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~

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

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

相关文章

微服务架构下的配置治理模式

微服务被滥用是不争的事实。被滥用的同时,很少人留意到它所带来的配置治理的问题。本文我们介绍两种常见的治理模式。基于common的配置治理模式当微服务数量多时,开发人员倾向于创建这样的配置文件:common-redis.jsoncommon-mysql.jsoncommon…

〖产品思维训练白宝书 - 产品思维认知篇③〗- 产品思维 VS 技术思维

大家好,我是 哈士奇 ,一位工作了十年的"技术混子", 致力于为开发者赋能的UP主, 目前正在运营着 TFS_CLUB社区。 💬 人生格言:优于别人,并不高贵,真正的高贵应该是优于过去的自己。💬 &#x1f4e…

【Numpy基础知识】Broadcasting广播

Numpy广播 来源:Numpy官网:https://numpy.org/doc/stable/user/basics.html 广播描述了 NumPy 在算术运算期间如何处理具有不同形状的数组。根据某些约束,较小的数组将“广播”到较大的阵列,以便它们具有兼容的形状。 导包 impo…

【Python机器学习】条件随机场模型CRF及在中文分词中实战(附源码和数据集)

需要源码请点赞关注收藏后评论区留言私信~~~ 基本思想 假如有另一个标注序列(代词 动词 名词 动词 动词),如何来评价哪个序列更合理呢? 条件随机场的做法是给两个序列“打分”,得分高的序列被认为是更合理的。既然要…

移动设备软件开发-Shape详解

Spape详解 1.自定义背景shape 1.1gradient 1.简介 定义渐变色,可以定义两色渐变和三色渐变,及渐变样式,它的属性有下面几个2.属性 angle,只对线性渐变是有效的放射性渐变必须指定放射性的半径,gradientRadiouscentetX和…

STM32的ST-link调试下载,各种调试接口硬件介绍

调试原理 STM32F-10X使用M3内核,该内核支持复杂的同i傲视操作,硬件调试模块允许在取指令(指令单步运行)或访问数据(数据断电时)使得内核停止。在内核停止时,内核状态都可被查询,完成…

JS基于编码方式实现加密解密文本

JS基于编码方式实现加密解密文本 严格来讲这是一种简单的编码方式:加密,将明文【注】转成编码。解密则是编码转码为明文本。 【注:明文是指没有加密的文字(或者字符串),一般人都能看懂。】 下面源码用到 这个fromCharCode() 方…

年底了,感谢大家2022年的支持,虚竹哥送10本JAVA好书

❤️作者主页:小虚竹 ❤️作者简介:大家好,我是小虚竹。Java领域优质创作者🏆,CSDN博客专家🏆,华为云享专家🏆,掘金年度人气作者🏆,阿里云专家博主&#x1f3…

碧兴物联IPO过会:拟募资4亿 预计年净利降幅超10%

雷递网 雷建平 12月21日碧兴物联科技(深圳)股份有限公司(简称:“碧兴物联”)日前IPO过会,准备在科创板上市。碧兴物联计划募资4.13亿元。其中,1.92亿元用于智慧生态环境大数据服务项目&#xff…

【MySQL】JDBC编程重点知识汇总

文章目录1. JDBC (API):2. JDBC代码编写:2.1 创建数据源对象:2.2 建立连接:2.3 构造SQL语句:2.4 执行SQL:2.5 释放资源:1. JDBC (API): 前面学过很多的SQL, 实际开发中大多数的SQL都不是手敲的, 都是通过程序来执行的. 各种的数据库都会提供API方便编程语言来控制; API (Appli…

【JavaEE】网络初识

初识网络协议 OSI七层和TCP/IP五层(四层) 应用层 应用程序 代码实现 传输层 端到端传输 (如玩家对玩家) 操作系统内核实现 网络层 点到点传输 操作系统内核实现 数据链路层 相邻节点之间的传输 (如集散点…

ChatGPT能接入微信了

前两天还看到不少人讨论,要是ChatGPT接入微信是啥感觉? 这不,想你所想,项目已经来了~ 来看效果,ChatGPT就出现在普通的微信对话框里,有问必答: 甚至还能拉入群聊,大家共用&#xf…

Adobe Premiere Pro 2020 系统兼容性报告:不支持的视频驱动程序

Adobe Premiere Pro 2020 系统兼容性报告:不支持的视频驱动程序 1. 问题 打开Adobe Premiere Pro 2020,看见系统兼容性报告:不支持的视频驱动程序。如下图: 点击修复,进入安装 Intel 图形驱动程序教程页面&#xff0…

DQL查询数据

文章目录DQL指定查询字段where条件子句联表查询分页和排序子查询DQL (Data Query Language:数据查询语言) 所有的查询操作都要用到它 select简单的查询,复杂的查询都要用到它数据库最核心的语言,最重要的语言使用频率…

python写个网页,使用flask显示时间登陆注册

用python写个网页。显示当前时间 可以使用 Python 的 datetime 模块来获取当前时间,然后使用 Python 的 Flask 框架来创建网页。 首先,需要安装 Flask: pip install flask 然后,可以使用以下代码创建一个 Flask 应用程序&#…

【Numpy基础知识】字节交换

字节交换 来源:Numpy官网:https://numpy.org/doc/stable/user/basics.html 文章目录字节交换导包【1】字节排序和ndarrays 简介【2】更改字节顺序导包 import numpy as np【1】字节排序和ndarrays 简介 ndarray 是一个对象,它为内存中的数据…

2023年,我的儿子刚从美国名校毕业,就失业了...

前不久,朋友圈里一篇名为《2023年,我的儿子刚从美国名校毕业,就失业了…》的文章火爆全网。 故事里的男孩出生于一个中产阶级家庭,从每年12万的幼儿园开始一路接受了优质教育,最终不负众望从美国前50名校的商学院毕业…

Ubuntu20.04LTS环境docker+cephadm方式部署Ceph 17.2.5

Ubuntu20.04LTS环境dockercephadm方式部署Ceph 17.2.51. 前言2. 环境准备2.1. 主机信息2.2. NTP时间同步2.3. 关闭 iptable 和 firewalld2.4. 关闭 SElinux2.5. 生成SSH证书,并分发到其他节点2.6. 依赖安装3. 安装部署Ceph17.2.53.1. 安装cephadm,拉取ce…

玩转ast- 手写babel插件篇

AST抽象语法树是什么?抽象语法树(Abstract Syntax Tree,AST)是源代码语法结构的一种抽象表示它以树状的形式表现编程语言的语法结构,树上的每个节点都表示源代码中的一种结构每个包含type属性的数据结构,都…

基于Amlogic T972:结合DTS、驱动、Datasheet,解析Pinctrl子系统、GPIO脚的复用方法

文章目录前言一、概念1.1 Pinctrl devices1.2 Pinctrl client devices二、例(1)GPIOZ_9/10 复用为 i2c2_z2.1 Pin controller devices2.1.1 设备树配置: dts2.1.2 源码:驱动配置2.1.3 Datasheet2.2 Pinctrl client devices2.2.1 设备树配置&a…