基于GAN的小目标检测算法总结(3)——《Better to Follow, Follow to Be Better: Towards Precise Supervision ......》

本文主要是介绍基于GAN的小目标检测算法总结(3)——《Better to Follow, Follow to Be Better: Towards Precise Supervision ......》,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

基于GAN的小目标检测算法总结(3)——《Better to Follow, Follow to Be Better: Towards Precise Supervision of Feature Super-Resolution》

  • 1.前言
  • 2.算法简介
    • 2.1 核心idea
      • 2.1.1 为什么使用feature-level的超分?
      • 2.1.2 低分特征和高分目标特征的相对感受野匹配问题
    • 2.2网络组成
      • 2.2.1 base detector
      • 2.2.2 SR feature generator(SR特征生成器)
      • 2.2.3 SR feature discriminator(SR特征判别器)
      • 2.2.4 SR target extractor(SR目标特征提取器)
      • 2.2.5 small predictor
    • 2.3训练过程
  • 3.一点看法

1.前言

  这里是基于GAN的小目标检测算法系列文章的第3篇,本文介绍2019年的ICCV论文《Better to Follow, Follow to Be Better: Towards Precise Supervision of Feature Super-Resolution》,终于到这一篇了,这篇论文在观感上比前两篇好多了,并且相比前两篇,实验结果的提升也更明显一点,虽然计算量还是有所增加,但不如前两篇增加的那么多。总之这是一篇比较值得一读的基于GAN小目标检测的论文。
 由于论文名字太长,这里我把论文的方法叫做TSP,注意,目前对本文方法的简称还没有主流的叫法,只是我这里为了方便而已。

2.算法简介

2.1 核心idea

  利用特征层级超分辨率技术(super-resolution,SR,注意,这里虽然说使用了SR技术,但其实shape没有变大,具体见2.2.2节,和Perpetual GAN一样),增强小目标的特征。本文发现满足以下两个条件可以提高性能:
  1>利用合适的高分目标特征作为训练SR网络的监督信号;(这不是废话吗?监督信号不合适,怎么可能训练的好SR网络?这里的合适,我认为指的是,不能用Perpetual GAN那种非直接监督的方法,也不能直接用提取低分特征的网络去提取高分特征,因为存在感受野匹配的问题)
  2>输入低分辨率特征和目标高分辨率特征是一个训练对,要让这个训练对的相对感受野相匹配。

  本文提出了新的用超分进行小目标检测的方法,主要贡献可以归纳为以下3点:
(1)使用feature-level的SR方法,考虑了context对检测的精度提升影响;
(2)训练SR网络时使用直接监督信号(HR目标特征),避免了间接监督导致的不稳定、超分质量低等问题。比如Perpetual GAN就是使用的间接监督;
(3)高分目标特征与低分特征的感受野匹配问题,这也是本文的最核心的贡献,2.1.2节详述这个问题。

本文的方法可以和任何proposal-based with feature pooling的算法(二阶段检测算法)结合,本文是基于Faster RCNN

2.1.1 为什么使用feature-level的超分?

  对整张图像或整个特征图进行超分计算量太大,因此Perpetual GAN是对RoI特征进行feature-level的超分,而MTGAN是对RoI图像进行image-level的超分。而MTGAN只关注RoI图像区域,没有考虑到context的影响,而context对目标检测是有用的,尤其是小目标的检测。
为了引入context信息、提高小目标检测精度,本文使用feature-level的超分(和perpetual GAN一样),因为RoI区域特征由大感受野的连续卷积计算提取得到,能够提取到一部分context信息。
  此外,特征层级超分还有一个非常明显的优点:计算量小,图像层级超分后还需要对图像进行特征提取(比如MTGAN,其获得超分图像后采用ResNet50重新提取特征,然后进行检测,计算量比较大非常大),而特征层级超分后就直接获得了超分特征,不需要重新提取特征。

2.1.2 低分特征和高分目标特征的相对感受野匹配问题

在这里插入图片描述
  一个易于想到的获得高分目标特征的方法就是:使用LR特征提取网络,在大图像上提取HR特征,然后按照gt box将RoI区域裁剪出来,作为SR网络的监督信号。但作者指出,这种HR目标特征不好,因为这样HR特征和LR特征的相对感受野不一样。
  首先明确一点,使用同一个网络提取LR特征和HR特征,则特征图上一个特征点的绝对感受野大小是一样的,相对感受野是绝对感受野的大小除以图像的面积,也就是感受野覆盖面积占全图面积的百分比。很显然,低分图像小,高分图像大,那LR特征的相对感受野就比HR特征大。
  为了更明确相对感受野的含义,我们举例来讲,假设LR特征的一个特征点能够覆盖低分图像上50%的面积,那HR特征的一个特征点可能只能覆盖30%的面积,30%的面积可能只能刚好覆盖一个目标,而50%能覆盖整个目标+一点context,也就是LR特征的感受野大、HR特征感受野小,这就是相对感受野不匹配的问题
  为了使得相对感受野更加匹配,需要扩大HR特征提取网络的绝对感受野,本文的方法是设计一个单独的HR目标特征提取网络,其与LR特征提取网络共享参数、降低参数量,但是把卷积层替换为空洞卷积以扩大感受野。
  注意:作者好像并没有通过严格的计算,让HR特征和LR特征的感受野完全一样,只是单纯的、定性的增加HR网络的感受野,那这样可能存在感受野仍然不匹配的问题,或者HR的感受野还不够大,或者HR感受野太大了

2.2网络组成

在这里插入图片描述
  共5个部分:base detector(包括large predictor)、SR feature generator、SR feature discriminator、SR target extractor、small predictor,其中后4个部分是本文提出来的。

2.2.1 base detector

本文使用的是faster RCNN,不再详述。

2.2.2 SR feature generator(SR特征生成器)

论文中的SR feature generator
上图为论文中的SR feature generator
在这里插入图片描述
上图为Project的补充材料中的SR feature generator

  SR feature generator用来对小目标的特征进行超分。
(1)网络结构
  残差网络,如上面两幅图所示,很明显,没有反卷积等上采样操作,因此虽然名义上是SR网络,但输入输出的特征图的shape没有变化
(2)损失函数
SR feature generator使用MSE损失+对抗损失+small predictor检测损失,有三个监督信号,如下:
  1>SR target extractor的真实高分特征,作为直接监督信号,使用MSE损失;
  2>SR feature discriminator,使得SR生成器的特征和真实高分特征分辨不出来,由此使得SR feature generator的超分特征更加真实,使用对抗损失;
  3>Small predictor,检测小目标,包括分类+回归损失,使得SR feature generator的超分特征更有利于检测任务。
(3)生成器输入
  2x下采样的图像输入backbone网络和RoI pooling得到小proposal特征,包括浅层的特征(分辨率高、细节信息多)和base特征两部分;
  具体流程:浅层和base层经过RoI pooling后的proposals特征进行concatenate在一起,送入生成器,只取输出特征图中和base层通道对应的通道部分,作为最终的SR特征。
(4)生成器输出标签
  原始图像送入SR target extractor获得输出并经过RoI pooling后,得到proposal特征(和2x下采样图像特征的相对感受野接近)。

2.2.3 SR feature discriminator(SR特征判别器)

  用来区分输入是SR target extractor高分特征还是生成器的超分特征,三个全连接层,只有对抗损失。

2.2.4 SR target extractor(SR目标特征提取器)

  获得SR feature generator所需的直接监督信号(HR目标特征),直接使用高分图像的HR特征图的RoI区域不合适,因为存在相对感受野匹配的问题。SR feature generator的网络结构的设计主要有两个特点:参数共享、相对感受野匹配。
(1)参数共享
  SR target extractor和base detector的backbone共享相同的参数,因为对相同的输入,SR target extractor和backbone在通道维度不能产生不同的特征。对这句话不太理解,这里把原文贴下来,欢迎大家讨论并批评指正。
在这里插入图片描述
在这里插入图片描述
  我认为这里和backbone共享参数原因,就是降低计算量。此外,由于和basedetector的backbone共享参数,因此SR target extractor不需要训练
(2)相对感受野匹配
  通过提高网络的绝对感受野,来提高相对感受野。
 1)对池化层,增加filter的size就可以扩大感受野。
  2)对卷积层,增加filter大小会增加参数,就没办法参数共享了,因此使用空洞卷积。本文使用的是空洞率为2的卷积,并且对于stride>1的卷积,比如stride=2,如果改成stride=2的、空洞率为2的空洞卷积,会对部分像素失去采样,因此使用stride=1的空洞卷积+max_pool size 2。

总结:论文中有很多地方的表述很奇怪,比如:
在这里插入图片描述
  我的理解如下:需要设计SR target extractor,使得不管使用backbone哪一层,都要覆盖相同的感受野。但其实论文的做法只是增加网络的感受野,没有通过严格的计算让低分特征和高分特征的感受野严格一致。可能我的理解有问题,欢迎大家批评指正

2.2.5 small predictor

  small predictor,网络结构和base detector的large predictor的一样,但是只用来检测SR生成器的小proposals的超分特征。训练用检测损失。

2.3训练过程

训练分阶段进行。
(1)图像输入backbone,并进行RoI pooling,获得统一shape的proposals特征;
(2)大的proposal 的特征送入large predictor;
(3)小的proposal的特征送入SR网络进行超分,得到的超分特征送入small predictor。

3.一点看法

  我个人认为,这篇论文总结了很多Perpetual GAN和MTGAN的优缺点,用feature-level的SR方法避免了MTGAN的庞大计算量,并很精准的抓住了perpetual GAN的SR网络没有直接监督信号的问题,此外还敏锐的观察到了LR特征和HR目标特征相对感受野不匹配的问题,idea很好!实验结果也比较有说服力(实验结果比perpetual GAN和MTGAN漂亮多了),算是一篇比较不错的用GAN来做小目标检测的方法,但是存在几个问题。
(1)它的baseline ResNet-50 Faster RCNN在COCO上只有29.5mAP,感觉有点低,不知道2019年的Faster RCNN有没有这么低,反正2021年的mmdetection上有37.4mAP。
在这里插入图片描述
在这里插入图片描述
(2)它的SR网络实际上没有提高特征的shape,因为送入生成器的LR特征都是经过RoI pooling统一shape的,而目标特征标签也是经过RoI pooling的。
(3)整个流程在base detector的基础上,增加了SR网络的前向传播和small predictor的前向传播,计算量还是有所增加的。
(4)是否解决了感受野匹配问题?
作者好像并没有通过严格的计算,让HR特征和LR特征的感受野完全一样,只是单纯的使用空洞卷积增加了HR网络的感受野,那这样可能存在感受野仍然不匹配的问题,或者HR特征的感受野还不够大,或者HR特征的感受野太大了

这篇关于基于GAN的小目标检测算法总结(3)——《Better to Follow, Follow to Be Better: Towards Precise Supervision ......》的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/427978

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

康拓展开(hash算法中会用到)

康拓展开是一个全排列到一个自然数的双射(也就是某个全排列与某个自然数一一对应) 公式: X=a[n]*(n-1)!+a[n-1]*(n-2)!+...+a[i]*(i-1)!+...+a[1]*0! 其中,a[i]为整数,并且0<=a[i]<i,1<=i<=n。(a[i]在不同应用中的含义不同); 典型应用: 计算当前排列在所有由小到大全排列中的顺序,也就是说求当前排列是第

csu 1446 Problem J Modified LCS (扩展欧几里得算法的简单应用)

这是一道扩展欧几里得算法的简单应用题,这题是在湖南多校训练赛中队友ac的一道题,在比赛之后请教了队友,然后自己把它a掉 这也是自己独自做扩展欧几里得算法的题目 题意:把题意转变下就变成了:求d1*x - d2*y = f2 - f1的解,很明显用exgcd来解 下面介绍一下exgcd的一些知识点:求ax + by = c的解 一、首先求ax + by = gcd(a,b)的解 这个

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

【数据结构】——原来排序算法搞懂这些就行,轻松拿捏

前言:快速排序的实现最重要的是找基准值,下面让我们来了解如何实现找基准值 基准值的注释:在快排的过程中,每一次我们要取一个元素作为枢纽值,以这个数字来将序列划分为两部分。 在此我们采用三数取中法,也就是取左端、中间、右端三个数,然后进行排序,将中间数作为枢纽值。 快速排序实现主框架: //快速排序 void QuickSort(int* arr, int left, int rig

poj 3974 and hdu 3068 最长回文串的O(n)解法(Manacher算法)

求一段字符串中的最长回文串。 因为数据量比较大,用原来的O(n^2)会爆。 小白上的O(n^2)解法代码:TLE啦~ #include<stdio.h>#include<string.h>const int Maxn = 1000000;char s[Maxn];int main(){char e[] = {"END"};while(scanf("%s", s) != EO

烟火目标检测数据集 7800张 烟火检测 带标注 voc yolo

一个包含7800张带标注图像的数据集,专门用于烟火目标检测,是一个非常有价值的资源,尤其对于那些致力于公共安全、事件管理和烟花表演监控等领域的人士而言。下面是对此数据集的一个详细介绍: 数据集名称:烟火目标检测数据集 数据集规模: 图片数量:7800张类别:主要包含烟火类目标,可能还包括其他相关类别,如烟火发射装置、背景等。格式:图像文件通常为JPEG或PNG格式;标注文件可能为X

秋招最新大模型算法面试,熬夜都要肝完它

💥大家在面试大模型LLM这个板块的时候,不知道面试完会不会复盘、总结,做笔记的习惯,这份大模型算法岗面试八股笔记也帮助不少人拿到过offer ✨对于面试大模型算法工程师会有一定的帮助,都附有完整答案,熬夜也要看完,祝大家一臂之力 这份《大模型算法工程师面试题》已经上传CSDN,还有完整版的大模型 AI 学习资料,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费