目标检测笔记

使用两个全连接层,一个作为类别的输出,一个作为物体位置数值的输出。(4个位置)

  • 对于分类的概率,使用交叉熵损失

  • 位置信息具体的数值,使用MSE均方误差损失(L2损失)

在目标检测当中,对bbox主要由两种类别。

  • Grounding-truth bounding box:图片当中真实标记的框

  • Predicted bounding box:预测的时候标记的框

对于一张图片当中多个目标,多个类别的时候。前面的输出结果是不定的,有可能是以下有四个类别的输出这种情况。或者N个结果,这样的话,网络模型输出结构不定

对于多个目标的情况,就不能以固定个数输出物体的位置值

目标检测-Overfeat模型

  • 滑动窗口

目标检测的暴力方法是从左到右、从上到下滑动窗口,利用分类识别目标。但是滑动窗口需要初始设定一个固定大小的窗口,这就遇到了一个问题,有些物体适应的框不一样

所以需要提前设定K个窗口,每个窗口滑动提取M次,总共K×M个图片,通常会直接将图像变形转换成固定大小的图像,变形图像块被输入CNN分类器中,提取特征后,我们使用一些分类器识别类别和该边界框的另一个线性回归器。

目标检测R-CNN模型

候选区域方法(region propousal method):提供了物体检查测的一种重要思路。

  • 步骤(AlexNet为例)

  1. 对于一张图片,找出默认2000个候选区域

  1. 2000个候选区域做大小变换,输入到AlexNet当中,得到特征向量

  1. 2000×4096

  1. 经过20个类别的SVM分类器,对于2000个候选区域做判断,得到[2000,20]得分矩阵

  1. 2000个候选区域做NMS,取出不好的,重叠度高的一些候选区域,得到剩下分数高,结果好的框

  1. 修正候选框,bbox的回归微调。

非最大抑制(NMS)

  • 目的:筛选候选区域,目标是一个物体只保留一个最优的框,来抑制那些冗余的候选框

修正候选区域

为了让候选框标注更准确,去修正原来的位置。修正过程(线性回归)

检测的评价指标

  • ioU交并比

  • 平均精确率(map)

改进-SPPNet

Fast R-CNN

训练会比较统一:废弃了svm以及sppnet

  • roi pooling layer+softmax

多任务损失-Multi-task loss

平均绝对误差(MAE)损失即L1损失+交叉熵损失

Faster R-CNN

  • 候选区域筛选融合到网络当中

  • 区域生成网络(RPN)+Fast R-CNN

  • RPN替代了SS选择性搜索算法

  • RPN网络用于生成region proposals

  • 通过softmax判断anchors属于foreground或者background

  • bounding box regression修正anchors获得精确的proposals

  • 得到默认300个候选区域给roi pooling继续后面fast rcnn的步骤

RPN原理

RPN网络的主要作用是得出比较准确的候选区域。

  • 用m×n(默认3×3=9)的大小窗口去扫面特征图得到K个候选窗口

  • 每个特征图中像素对应的9个窗口大小?

  • 三种尺度(128,256,512),三种长宽比(1:1, 1:2, 2:1),3×3=9种不同大小的候选框

  • eg:feature(51*39*256) 得到51*39*9 anchors

  • 窗口输出[N,256]➡分类:判断是否是背景

  • 回归位置:N个候选框与自己对应目标值GT做回归,修正位置

  • 得到更好的候选区域提供给ROI pooling使用

Faster R-CNN训练

  • RPN训练:

  • 分类:二分类,poftmax,;logisticregression

  • 候选框的调整:均方误差做修正

  • Fast RCNN部分的训练:

  • 预测类别训练(softmax)还有预测位置的训练(均方差损失)

  • 样本准备:正负anchors样本比例:1:3

YOLO

GoolgleNet+4个卷积+2个全连接层

网络输出大小:7×7×30

流程理解

  • 单元格

  • 7*7=49个像素值,理解成49个单元格

  • 每个单元格负责预测一个物体类别,并且直接预测物体的概率值

  • 每个单元格:两个(默认)bbox位置,两个置信度(confidence)

  • 一个bbox:xmin,ymin,xmax,ymax,confidence

  • 两个bbox:4+1+4+1=10个值

  • 30:上面的10个+20(20代表20类的预测概率结果)

网格输出筛选

  • 一个网格会预测两个bbox,在训练时我们只有一个bbox专门负责预测概率(一个object 一个bbox)

  • 20个类别概率代表这个网格当中的一个bbox

  • 一个confidence score

  • yolo框,概率值都直接由网络输出【7*7*30(人为给30个值赋了定义)】;faster-rcnn是人为设定一个值,然后利用RPN网络对其优化到一个更准的坐标和是否背景类别

训练

  • 预测框对应的目标值标记

  • 三部分损失 bbox损失+confidence损失+classfication损失

总结

  • 优点:速度快

  • 缺点:

  • 准确率会打折扣

  • yolo对相互靠的很近的物体(挨在一起且中点都落在同一个格子上的情况),还有很小的群体检测效果不好,这是因为一个网格中只预测了两个框

SSD

  • SSD结合了YOLO中的回归思想和Faster-RCNN中的Anchor机制

  • 不同尺度的特征图上采用卷积核来预测一系列Default Bounding Boxes的类别、坐标偏移

  • 不同尺度feature map所有特征点上使用PriorBox层(Detector&classifier)

训练与测试

  • 训练

  • 样本标记:8732个候选框default boxes,得到正负样本,正:负=1:3

  • Softmax Loss(Faster R-CNN是log loss),位置回归则是采用Smooth L1 loss(与Faster R-CNN一样)

  • 测试

  • 输入→输出→nms→输出

目标检测数据集标记

  • 工具:Labellmg

  • 需求:商品图片,需要标记的物体有哪些

标记原则为图片中所出现的物体与我们确定类别的物体相匹配即可

xml读取本地文件存储到pkl

  • ElementTree工具使用,解析xml结构

  • 保存物体坐标结果以及类别

  • pickle工具导出

  • 保存的信息:类别,位置

  1. 找到路径对应的图片

  1. 对应每张图片,解析其中的多个物体

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我! 毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip毕设新项目-基于Java开发的智慧养老院信息管理系统源码+数据库(含vue前端源码).zip
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值