目标检测学习笔记+附入门资料+表面缺陷检测

2023-11-14

待更新补充…

放在最前——MARK入门阅读学习资料

(一)目标检测基本概念

(1)名词含义

目标检测

获得图像or视频中目标的位置信息和类别信息,通常图像中有多个目标需要检测

  1. 类别任务:输出N个类别的标签,评估指标是准确度Accuracy
  2. 定位任务:输出物体的位置坐标,评估指标IOU
    物体位置放入boundingbox(bbox)里,有两种格式:xywh格式(中心点以及点距两边的高宽)&xmin,ymin,xmax,ymax(选框的左上角右下角坐标)

目标检测方法的分类

  • TwoStage(两步走Region Proposal)先做区域划分(候选区)再做目标分类
  • OneStage(端到端End to End)用同一个网络一步实现区域划分和分类
    在这里插入图片描述

Bounding box

  • Ground-truth Bounding box真实框
  • Predicted Bounding box预测框
    在这里插入图片描述

滑动窗口

原理: 利用滑窗从左到右从上到下遍历图像寻找概率最大的位置
不同物体适合不同大小和高宽比的窗口→定义K个若干大小的窗口,每个窗口滑动M次,获得K*M张图片输入进入分类网络中
**Overfeat模型图解**(暴力穷举)

R-CNN步骤详解

在这里插入图片描述

  • 1 标定候选区域Region of Interest(ROI),选择性搜索Selective Search(SS)
    选择性搜索Selective Search在一张图片上提取出来约2000个侯选区域
    由于长宽不定,不能直接输入alexNet
    2000个候选区域做大小变换

  • 2 提取特征向量:输入AlexNet网络

  • 3 用特征向量训练分类器
    R-CNN选用SVM进行二分类。假设检测20个类别,那么会提供20个不同类别的SVM分类器,每个分类器都会对2000个候选区域的1特征向量分别判断一次,这样得出[2000, 20]的得分矩阵
    20个分类器每个都会对2000个候选区域的特征向量分别进行打分,获得2000×20的得分矩阵,利用得分矩阵再进行下一步的迭代筛选

  • 4 剔除重叠建议框:非极大抑制Non-maximum Suppression(NMS)
    筛选候选区域,目标是一个物体只保留一个最优的框,来抑制那些冗余的候选框

迭代过程
1、对于所有的2000个候选区域得分进行概率筛选, 0.5
2、剩余的候选框,每个候选框找到各自的GT(Ground Truth)

  • 假设图片真实物体个数为2(N) ,筛选之后候选框为5(P),计算N中每个物体位置与所有P的交并比loU计算,得到P中每个候选框对应loU最高的N中一个
  • 如下图, A、C候选框对应左边车辆, B、D、E对应右边车辆
    在这里插入图片描述
    假设在滑动窗口有:A、B、C、D、E5个候选框,
  • 第一轮:对于右边车辆,假设B是得分最高的,与B的lou>0.5删除。现在与B计算loU, DE结果>0.5,剔除DE, B作为一个预测结果
  • 第二轮:对于左边车辆, AC中, A的得分最高,与A计算loU, c的结果>0.5,剔除C, A作为一个结果
    最后算法输出A,B;框的位置在上一步的选择性搜索就已经获得
    最终输出:(理想)每个GroundTruth都有一个候选框预测结果

“但是SS获得的候选框位置未必特别准确,可能区域过大”——>要进行第五步,候选框bbox的修正

  • **5 修正候选框:得到bbox regressor **
    回归用于修正筛选后的候选区域,使之回归于ground-truth;默认认为这两个框之间是线性关系,因为在最后筛选出来的候选区域和ground-truth很接近了
    在这里插入图片描述在这里插入图片描述A是候选框,G是目标GT框,让A与G做回归训练,得到四个参数
    获得最终R-CNN的输出:比如对于坐标x,x*w_x=x_locate

交并比Interest over Union(IoU)

两个区域的重叠程度overlap:侯选区域和标定区域的loU值(取值:0~1)
通常门限threshold设定为:类别正确即IoU>0.5,门限threshold=0.5,IoU越靠近1说明越准确

在这里插入图片描述

平均精确率Mean Average Precision(MAP)

在这里插入图片描述这个地方教程讲得不如这里详尽:睿智的目标检测2——mAP的概念

对于目标检测而言任务,每一个类都可以计算出其Precision和Recall,通过合理的计算,每个类都可以得到一条P-R曲线,曲线下的面积就是AP的值。

  • 假设存在M张图片,对于其中一张图片而言,其具有N个检测目标,其具有K个检测类,使用检测器得到了S个Bounding Box(BB),每个BB里包含BB所在的位置以及对于K个类的得分C。
  • 利用BB所在的位置可以得到与其对应的GroundTruth的IOU值。
  • 然后对其进行mAP的计算

(二)目标检测基本原理

基本思路

  • 输出
    初步思路:对于单个物体,在做分类问题回归时增加一个定位信息的全连接输出层,即:FC1+FC2
    但是由于图像中目标的数量不一定,所以模型的输出结构也不定
    1.暴力穷举思路:Overfeat模型
    2.候选区域思路:Region Proposal method——R-CNN模型
    在这里插入图片描述*这些具体可以参照上一部分内容

R-CNN的缺点

  1. 训练阶段多:步骤繁琐:微调网络+训练SVM+训练边框回归器。
  2. 训练耗时:占用磁盘空间大: 5000张图像产生几百G的特征文件。(VOC数据集的检测结果,因为SVM的存在)
  3. 处理速度慢:使用GPU, VGG16模型处理一张图像需要47s
  4. 图片形状变化:候选区域要经过crop/warp进行固定大小,无法保证图片不变形

R-CNN慢的主要原因就在于CNN特征提取(第三步)过于耗时

  1. 基于回归分析的思路
    One-Stage方法

网络评估指标

在这里插入图片描述
分别对分类&定位两个任务分别评估

  1. IoU交并比
    在这里插入图片描述主要是位置准确率的考量

  2. MAP平均精确率
    对于分类准确率的考量

模型MAP

  • 双阶段Two-Stage算法
    在这里插入图片描述
  1. Overfeat
  2. R-CNN
  3. SPP-Net
  4. Fast R-CNN
  5. Faster R-CNN
  6. R-FCN
  7. Mask R-CNN
  • 单阶段One-Stage算法
    YOLO系列&SSD系列&others
    在这里插入图片描述
  1. YOLO
  2. YOLOv2
  3. YOLOv3
  4. YOLOv4
  5. YOLOv5
  6. SSD
  7. DSSD
  8. R-SSD
  9. F-SSD
  10. DSOD
  11. RetinaNet

(三)LabelImg学习

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

目标检测学习笔记+附入门资料+表面缺陷检测 的相关文章

随机推荐

  • [QT入门篇]信号槽机制

    一 信号与槽的引入 信号与槽 Signal Slot 是 Qt 编程的基础 信号槽 实际是观察者模式 发布 订阅模式 当某个事件发生之后 比如 按钮检测到自己被点击了一下 它就会发出一个信号 signal 这种发出是没有目的的 类似广播 如
  • 【NLP】第 1 章 :机器阅读理解简介

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • Python可视化-气泡图

    气泡图类似散点图 也是表示XY轴坐标之间的变化关系 也可以像彩色散点图给点上色 区别在于可以通过图中散点的大小来直观感受其所表示的数值大小 一 数据文件准备 1 PeopleNumber csv city people price NJ 8
  • Android VNDK的作用

    本文目的是让你理解VNDK是什么作用 暂不做细节讲解 在Android 8 0及更高版本中 引入了很多技术都是为了将system和vendor分离 这样设备厂商和芯片供应商只需关心vendor实现 那么vendor实现时要加载framewo
  • 【总结】前端常用编码写法合集

    一 css样式 1 文字多行溢出 单行溢出 overflow hidden white space nowrap text overflow ellipsis 多行溢出 display webkit box webkit box orien
  • Vue教程(一):Vue核心

    Vue教程 一 Vue核心 1 1 Vue简介 1 1 1 Vue是什么 一套用于构建用户界面的渐进式JS框架 1 1 2 谁开发的 尤雨溪 2015 10 27 正式发布 Vue1 0 0 Evangelion 新世纪福音战士 2016
  • C语言 结构体初阶

    头文件 define CRT SECURE NO WARNINGS 1 include
  • 毕设系列三之利用tensorflow做深度学习情感分析

    利用tensorflow做深度学习情感分析 深度学习作为一项学习数据的多层特征或表征的强大机器学习技术 此项目中 将使用tensorflow深度学习平台 通过相关模型的构建 以及数据的处理 完成微博评论情感分析 已到达类似百度AI情感分析功
  • 多态(polymorphic)

    目录 1 多态的基本介绍 2 多态实现条件 3 重写 重写的介绍 重写和重载的区别 动 静态绑定机制 5 向上转型和向下转型 向上转型 向上转型的特点 总结 向下转型 多态的优缺点 多态是Java三大基本特征中最抽象也是最重要的特征 多态是
  • Html获取Url参数 解决中文乱码

    Html 获取 Url 参数 解决中文乱码 方法一 分割为数组 function getQueryVariable name var query window location search substring 1 var vars que
  • hibernate 反向生成数据库表

    hibernate 配置属性中 hibernate hbm2ddl auto可以帮助你实现正向工程 即由 java 代码生成数据库脚本 进而生成具体的表结构 在hibernate cfg xml中 java 代码 html view pla
  • idea

    1 本人最近刚开始切换到 Intellij idea 发现一个问题 maven工程项目老是有红色下划线提示错误 Cannot Resolve Symbol 但是这些依赖都已经通过pom引进了 idea的Library中也能看到 试一下Fil
  • mysql 建表语句 及完整案例

    1 最简单的 表名为name info 只包含id列和name列 执行sql语句 CREATE TABLE name info id int not null name char 12 2 将id列设置为主键 执行sql语句 CREATE
  • 数据结构Java实现06----中缀表达式转换为后缀表达式

    本文转载至 http www cnblogs com smyhvae p 4790373 html 本文主要内容 表达式的三种形式 中缀表达式与后缀表达式转换算法 一 表达式的三种形式 中缀表达式 运算符放在两个运算对象中间 如 2 1 3
  • 【华为OD机试真题 JS】火锅

    标题 火锅 时间限制 1秒 内存限制 262144K 语言限制 不限 入职后 导师会请你吃饭 你选择了火锅 火锅里会在不同时间下很多菜 不同食材要煮不同的时间 才能变得刚好合适 你希望吃到最多的刚好合适的菜 但是你的手速不够快 用m代表手速
  • [培训-无线通信基础-2]:无线电磁波传播机制(传播、衰减、链路预算)

    作者主页 文火冰糖的硅基工坊 https blog csdn net HiWangWenBing 本文网址 https blog csdn net HiWangWenBing article details 118667807 引言 既然无
  • vue crypto-js加解密

    1 安装crypto js npm install crypto js save 2 编写encrypt js const CryptoJS require crypto js import md5 from js md5 var key
  • 关于程序员【锁死】服务器

    干程序员这么多年 头一次听说 锁死 服务器这么个名词 乍一听到被媒体造的这个名词 觉着很突兀 自己念两遍就会感到头疼 恶心 想吐这么膈应 服务器到底是怎么 锁死 的 什么玩意 你看看人家 数据库系统概论 里面人家关于 锁 的一个翻译 死锁
  • ARM单片机通用IAP在线升级YMODEM协议

    ARM单片机通用IAP在线升级YMODEM协议 效果 YMODEM协议格式 移植修改接口 测试代码 代码获取 效果 YMODEM协议格式 接收开始流程 接收者1HZ发送接收状态 C C 代表字符 C 进入接收状态 发送者发送起始帧 SOH
  • 目标检测学习笔记+附入门资料+表面缺陷检测

    待更新补充 文章目录 放在最前 MARK入门阅读学习资料 一 目标检测基本概念 1 名词含义 目标检测 目标检测方法的分类 Bounding box 滑动窗口 R CNN步骤详解 交并比Interest over Union IoU 平均精