WSCL

article/2025/7/8 15:01:45

摘要

近些年来,因为弱监督目标检测仅需要图片分类级别的label受到了人们广泛的关注,其代价是准确率一定程度的下降。本文提出了一个简单而有效的弱监督协作目标检测框架,基于共享部分特征增强预测相关性来同时训练强,弱监督两个检测网络。弱监督目标检测网络采取类似WSDDN的结构,强监督目标检测网络采取类似Faster-RNN的结构。最终在数据集上证明了框架的有效性

补充WSDDN

WSDDN全称是Weakly Supervised Deep Detection Network,即弱监督深度检测网络。

只依靠image级别的label来对其训练
在这里插入图片描述

整个结构主要是以图像分类和目标检测这两个框架

左边是一个预训练好的CNN

右边则是一个类似FasterRCNN结构,通过感兴趣池化以及SPP空间金字塔池化,得到区域(region)级别的特征

然后分支成两个数据流,其中一个数据流使用之前预训练好的CNN做一个分类,另外一个数据流则做检测任务

其中分类的结果使用的softmax,形式如下,表示每个区域各个类别的概率
在这里插入图片描述

而检测流中也用的是softmax,形式如下,表示每个类别中更具有信息的是哪个区域

在这里插入图片描述
最后得到了分类和检测结果,通过**矩阵内积(即对应元素相乘)**将两个softmax结果融合

在这里插入图片描述

在这里插入图片描述

1-n代表图片级别的label个数,1-C代表是类别个数,Φk的值域在(0, 1)之间,可以认为是类别K出现在image_xi中的概率,如果大于0.5则表示出现,因此后面减了个1/2。最后对所有loss求和

整体构造

在这里插入图片描述

我们分别有弱检测器记为Dw,强检测器Ds

Dw通过弱监督,如右上角的图片分类任务进行训练,由于Ds没有直接的监督所以不能直接训练。因此我们要求Ds, Dw需要输出相似的锚框预测

通过最后的cosistency Loss来约束两个检测器的预测。另外由于两个检测器的目标任务相同,我们在中间共享了提取的特征。

在这里插入图片描述

上图是更为详细的结构

整体网络基于VGG16搭建

然后分支成两条路,红色的是强监督检测器,蓝色的是弱监督检测器

红色的支路则是类似FasterRCNN结构最终输出分类和回归框

蓝色的支路先经过Selective Search Window算法,将图片划分成各个小区域。送入SPP金字塔池化结构,后续的全连接层通过两个分支,分别得到分类和回归框结果。这里要注意的是FC6和FC7这两个是共享网络参数的。这两个支路结果融合,并与上面红色支路,做了一个Prediction Consistency Loss,进一步约束两者输出相同的预测。另外还需要根据图片label,得到图片级别的分类损失,对整个弱监督网络进行优化

损失计算

相较于WSDDN,该文章的一个创新点也是增强了一个Loss计算来约束两个检测器

首先弱监督检测网络最后对目标输出一个图片类别预测,这里没有采取WSDDN中使用预训练CNN对其进行判别。而是直接通过给定的图像标签来计算损失,损失函数也是使用二分类交叉熵损失函数

在这里插入图片描述

第二就是文章里提到的consistency loss了,训练整个框架的一大难点是在不需要检测标签情况下,为强检测器定义一个loss来帮助优化。考虑到Ds,Dw两个检测器最终的目标是输出预测框及类别,我们提出使用输出的一致性来训练Ds检测器

而cosistency loss又由三部分组成
在这里插入图片描述

第一部分CPinter表示Dw和Ds对框类别预测的交叉熵损失函数,其中pjc表示Dw输出,pic表示Ds输出

第二部分CPinner表示Ds对框类别预测的损失函数,由于训练前期,Dw是一个弱检测器,会引来部分噪声。所以引入一个CPinner对前期训练做一个约束,两者分配的比例通过β来控制,β默认设置为0.8

第三部分CLinter则是通过Smooth L1 Loss来对回归框预测进行并赋予权重Pj

整个loss前面还有一个Iij系数,如果两者预测框的IOU大于0.5则置为1,其他情况则置为0,进一步刻画两个检测器输出一致性

实验结果

实验采取的是SGD优化器,以及β=0.8的超参数设置

在PASCAL VOC 2007 数据集上进行实验

在这里插入图片描述

Iw指的是初始弱检测器

CLw指的是经过这一框架训练的弱检测器

CLs指的是经过这一框架训练的强检测器

CSs指的是强监督下的强检测器

可以看到通过弱监督得到的强检测器效果提升还是很明显的,mAP一下涨了好几个点,并且弱检测器的性能也不差,得到了很大的提升

以下是效果图

在这里插入图片描述

总结

WSCL的整体框架思路还是很清晰明了的。沿用了上一代WSDDN大部分的结构。去除了预训练CNN,统一使用图像标签,并引入了一个Prediction Consistency Loss,巧妙的将强,弱两个检测器结合起来,形成监督。考虑到前期弱检测器因性能不够引入噪声,也对其中的权重做出了适当的调整。最后的实验结果也是能看的出来弱监督对检测器带来的提升是挺不错的


http://chatgpt.dhexx.cn/article/dBZd09hA.shtml

相关文章

wsl介绍

wsl WSL安装打开wsl功能下载指令 配置信息WSL 介绍什么是WSL比较 WSL 版本WSL 的基本命令 问题解决 WSL安装 打开wsl功能 在windows功能里面勾选实用于linux的windows子系统下载 指令 可以使用单个命令安装运行 WSL 所需的一切内容。 在管理员模式下打开 PowerShell 或 Win…

Ubuntu20.04 Openssl安装

安装背景 因为ubuntu20.04LTS中自带的openssl1.1.1版本的函数库不天汇使用,在编译过程中无法找到编译路径,故此手动安装openssl(我是个懒人,不到万不得已,不会手动安装,直接apt-get不香吗?&…

简易安装 OpenSSL

官网的太麻烦了 如果你装了git 他里面有一个openssl.exe 可以直接用 下面是简易安装方法 https://slproweb.com/products/Win32OpenSSL.html 我是win10 下这个 Win64 OpenSSL v3.1.1 选下面的 后面的赞助 全不选 配置环境变量 配置Path变量 命令行输入 openssl version 显…

python3.10.5安装时openssl安装失败的问题

初始问题:编译安装python后执行pip list 报错 [rootVM-0-6-centos Python-3.10.5]# pip3 list Package Version ---------- ------- pip 22.0.4 setuptools 58.1.0 WARNING: pip is configured with locations that require TLS/SSL, however the ssl mo…

LINUX安装openssl

openssl 官网下载 https://www.openssl.org/source/old/ 1、解压openssl包: tar -xzf openssl-1.1.1n.tar.gz2、得到openssl-1.1.1n目录,然后进入openssl-1.1.1n目录中,安装openssl到 /usr/local/openssl 目录,安装之后&#xff…

openssl安装教程(windows7系统,超详细)

openssl安装教程 1.安装包安装1.1所需资源链接1.2安装流程1.3测试是否安装成功1.4安装过程中的问题 2.自己编译源码再安装 1.安装包安装 1.1所需资源链接 openssl安装包下载地址:http://slproweb.com/products/Win32OpenSSL.html 如果用谷歌浏览器打开的话&#x…

在Window 10 64位电脑上安装 OpenSSL安装过程

前期准备 安装最新版的ActivePerl到https://www.openssl.org 下载最新OpenSSL源码到http://www.nasm.us 下载NASM汇编工具在开始任务栏里打开vc2010的工具文件夹,如图所示: 选择Visual Studio命令提示(如果是编译64位的openssl,应该打开的…

windows下OpenSSL安装

官网下载地址:https://www.openssl.org/source/ 项目GitHub地址: https://github.com/openssl/openssl 其他下载地址:http://slproweb.com/products/Win32OpenSSL.html https://oomake.com/download/openssl 一、下载openssl安装版 二、修…

OpenSSL安装及查看版本号

1、安装OpenSSL 下载链接 安装按照提示即可 2、添加系统path环境变量 D:\OpenSSL-Win64\OpenSSL-Win64\bin3、查看OpenSSL版本号 openssl version 或者 openssl version -a

openssl安装方式(Ubuntu下)

openssl安装方式 官方网站1、解压2、编译安装3、生成 软连接4、测试 官方网站 https://www.openssl.org/source/ 1、解压 我这里 安装的版本时1.0.2,其实都一样 ,默认版本 是1.1.1 拿到 源码后先解压源码文件 openssl-1.0.2u.tar.gz2、编译安装 进…

Linux查找openssl文件夹,Linux下OpenSSL 安装详解 +图解

安装环境: 操作系统:redhat 12.0 OpenSSL Version:openssl-0.9.8l Download 安装包(Linux source) :openssl-0.9.8l.tar.gz(or the latest version of openssl)下载地址: 在linux下解压缩下载到的安装包,命令如下.....tar -xzf op…

OpenSSL安装升级

官网:/source/index.html 当前(2020-10-22)最新稳定版本:https://www.openssl.org/source/openssl-1.1.1h.tar.gz Note: The latest stable version is the 1.1.1 series. This is also our Long Term Support (LTS) version, supported until 11th Se…

【物联网】Linux平台OpenSSL安装教程

00. 目录 文章目录 00. 目录01. OpenSSL概述02. OpenSSL下载03. OpenSSL安装04. 查看系统OpenSSL版本05. 附录 01. OpenSSL概述 OpenSSL是一个安全套接字层密码库,囊括主要的密码算法、常用密钥、证书封装管理功能及实现ssl协议。OpenSSL整个软件包大概可以分成三个…

OpenSSL安装使用(二):OpenSSL安装说明

注:该方法适用于Openssl 1.1.1及以上版本 1)安装环境:Windows10专业版VS2010 相关软件下载地址: 1)ActivePerl :Download & Install Perl - ActiveState 2)openssl:/source/…

OpenSSL安装

下载OpenSSL压缩包 下载地址 可以直接下载压缩包或者用Git拉取 下载perl 下载地址 下载压缩包,解压,将路径D:\Program\strawberry-perl\perl\bin配置到环境变量path中 打开powershell,输入perl -v 代表安装成功 下载nasm 下载地址 下载…

OpenSSL完整安装教程及部分问题解决

一、环境: 系统:Centos 7 OpenSSL版本:openssl-1.1.1g 二、下载 OpenSSL官方下载网址:https://www.openssl.org/source/ openssl有发行了2.0版本,但此处仅用稳定的1.0版本即可。 官方教程:https://wiki.…

Windows 下OpenSSL安装过程及错误解决办法

Windows下使用OpenSSL有两种方式: 一.直接下载别人编译好的安装包:http://slproweb.com/products/Win32OpenSSL.html 二.自己编译安装: 1.下载并安装perl http://www.activestate.com/activeperl/downloads/ 2.安装与配置: …

openssl安装与使用

1、OpenSSL简介 OpenSSL是一个SSL协议的开源实现,采用C语言作为开发语言,具备了跨平台的能力,支持Unix/Linux、Windows、Mac OS等多种平台。    OpenSSL最早的版本在1995年发布,1998年后开始由OpenSSL项目组维护和开发。当前最新…

windows 下openssl安装配置

一、下载 1、官网下载 /source/index.html(源码版) 2、网盘下载(windows版) 链接:https://pan.baidu.com/s/1JrM_Fg8uHt0O0HEN_w7coA 提取码:7777 3 、码客下载 OpenSSL官方下载 - 码客 …

Openssl安装教程

目录 1、安装相关依赖2、官网下载openssl版本3、编译openssl4、查看openssl版本 1、安装相关依赖 通过yum命令下载相关的依赖包gcc、libffi-devel、zlib*、openssl-devel,当然很多依赖包系统都应该有了; yum install gcc libffi-devel zlib* openssl-d…