2PCNet:昼夜无监督域自适应目标检测(附原代码)

news2025/1/22 14:42:48

点击蓝字 关注我们

关注并星标

从此不迷路

计算机视觉研究院

26ef97731718b44a1af0938d9f9385db.gif

23e945021a73f45639b141bb6fc56178.gif

公众号ID计算机视觉研究院

学习群扫码在主页获取加入方式

计算机视觉研究院专栏

Column of Computer Vision Institute

由于缺乏夜间图像注释,夜间目标检测是一个具有挑战性的问题。尽管有几种领域自适应方法,但实现高精度结果仍然是一个问题。

3eebef308ddf7a2ebed5e276509776c0.gif

01

前景概要

在使用公认的师生框架的方法中,特别是对于小规模和低光物体,仍然可以观察到假阳性误差传播。我们提出了一种两阶段一致性无监督领域自适应网络2PCNet来解决这些问题。该网络在第一阶段使用来自教师的高置信度边界框预测,并将其附加到学生的区域建议中,供教师在第二阶段重新评估,从而产生高置信度和低置信度伪标签的组合。夜间图像和伪标签在用作学生的输入之前被缩小,从而提供更强的小规模伪标签。为了解决图像中弱光区域和其他夜间相关属性引起的错误,我们提出了一种称为NightAug的夜间特定增强管道。该管道涉及将随机增强(如眩光、模糊和噪声)应用于日间图像。在公开数据集上的实验表明,我们的方法比最先进的方法和直接在目标数据上训练的监督模型获得了20%的优越结果。

8f20e186718581e6321bfb853192d58c.gif

02

背景&动机

夜间目标检测在许多应用中都是至关重要的。然而,通过监督方法对注释数据的要求是不切实际的,因为带有注释的夜间数据很少,并且监督方法通常容易过度拟合训练数据。除其他原因外,这种稀缺性是由于光线条件差,使得夜间图像难以注释。因此,不假设注释可用性的方法更有优势。领域自适应(DA)是解决这一问题的有效方法,它允许使用现成的注释源日间数据集。

为了解决这个问题,我们提出了2PCNet,一种用于夜间目标检测的两阶段一致性无监督域自适应网络。我们的2PCNet将在第一阶段预测的高度自信的伪标签的边界框与学生的区域建议网络(RPN)提出的区域合并在一起。然后,教师在第二阶段使用合并后的提议来生成一组新的伪标签。这提供了高置信度和低置信度伪标签的组合。然后将这些伪标签与学生生成的预测进行匹配。然后,我们可以利用加权一致性损失来确保无监督损失的更高权重基于更强的伪标签,但允许较弱的伪标签影响训练。

fe4b054ac2bcd1522cccbbd1492c6e42.png

配备了这种两阶段策略,我们解决了小规模对象的错误问题。我们设计了一种学生缩放技术,故意缩小学生的夜间图像及其伪标签。为了生成准确的伪标签,教师的图像保持在其全尺寸。这导致更容易预测的较大对象的伪标签被缩小到较小的对象,从而提高学生的小规模表现。夜间图像存在日间场景中未发现的多种复杂情况,如黑暗区域、眩光、突出的噪声、突出的模糊、不平衡的照明等。所有这些都造成了问题,因为接受日间图像训练的学生更倾向于日间域的特征。为了缓解这个问题,我们提出了NightAug,一组随机的夜间特定增强。NightAug包括在白天的图像中添加模拟夜间条件的人造眩光、噪音、模糊等。通过NightAug,我们能够减少学生网络对源数据的偏见,而不会导致对抗性学习或计算密集型翻译。总体而言,使用2PCNet,我们可以在图1中看到我们的结果在质量上的改进。

d0bacd1598f807a6376672d4123af29e.gif

03

新框架设计

我们的2PCNet的体系结构如下图所示。我们的2PCNet由一个学生和一个教师网络组成。该学生是一个多域网络,在标记的白天图像(用NightAug增强)和未标记的夜间图像上进行训练。老师专注于夜间图像,为学生生成伪标签,是学生的指数移动平均值(EMA)。

603bbdcbca76d5b83134808fc3e234ea.png

在初始预训练阶段之后,教师开始产生伪标签,这允许学生初始化特征提取器和检测器。在2PCNet的第一阶段的每次迭代中,教师从夜间图像中产生伪标签。通过置信阈值对这些伪标签进行过滤。这是为了确保只给学生高置信度的伪标签。然后将来自伪标签的边界框与学生的RPN生成的区域建议相结合。合并后的区域建议然后用于从学生的RoI网络生成预测。在第二阶段,教师使用相同的合并区域建议来生成一组匹配的伪标签,其中每个伪标签都有从学生那里获得的相应预测。

Two-Phase Consistency

由于日间源图像和夜间目标图像之间存在较大的域间隙,教师无法生成高质量的伪标签。这种情况通常发生在整个场景中,但特别是对于具有强烈夜间特征的区域,例如弱光、眩光、不均匀照明等。教师只为与白天有更多相似性的区域生成自信的伪标签,因为它偏向于白天域。这种偏差给使用硬阈值来过滤分类交叉熵损失的伪标签的方法带来了问题。剩下的伪标签只包含具有日间属性的简单样本。因此,学生不会从较难(例如较暗)的区域学习。

由于对难样本(即具有高水平夜间属性的区域)的了解最少,教师开始预测高度自信但不正确的伪标签。当老师向学生提供这些不正确的伪标签时,一个粘性循环开始了,老师反过来用不正确的知识更新。因此,错误通过训练继续传播。在我们的案例中,这些误差明显发生在黑暗/眩光区域和小尺度物体中。为了解决错误传播的问题,我们设计了一种两阶段的方法,将高置信度的伪标签与其不太置信度的对应标签结合在一起。这种组合允许自信标签的高精度,并将不太自信标签的额外知识提炼到学生身上。

3ce3cea5833d966c76e8f4861c2894b2.png

(从左到右,从上到下)GT边界框,教师预测的具有非极大抑制(NMS)和阈值(Bp)的边界框,由Bp指导的学生预测的边界框(Bstudent),以及教师预测的一致性损失的边界框。

Student-Scaling

228037d303b9642e7dfe6866bbed27af.png

为了确保不会忘记先前标度的知识,应用了标度因子的高斯函数。高斯函数的范数是从调度值中获得的。为了防止由于伪标签太小而产生额外的噪声,将去除面积低于阈值的标签。

NightAug

夜间图像有一系列日间场景中没有的复杂情况。这导致了师生框架中的一个问题,即学生会偏向于源领域。以前的方法试图解决这个问题,但要么需要计算密集型翻译,要么在框架中添加额外的领域分类器,这使训练变得复杂。我们提出了NightAug,一种夜间特定的增强管道,它是计算光,不需要训练。NightAug由一系列增强组成,目的是引导白天图像的特征与夜间图像的特征相似。

6ea7a010e5faddaccd74e872d217bcb7.png

NightAug:原始图像(左上)和随机增强的图像:高斯模糊、伽马校正、亮度、对比度、眩光、高斯噪声和随机剪切

每个增强都有一个应用的概率,增强的强度是随机的。然后可以用原始图像的随机区域替换增强图像的随机区。该区域替换的概率随着每次迭代而降低。

da05aca5e5a65a47589bb51d73d55801.gif

04

实验及项目落地

Faster RCNN、Adaptive Teacher(AT)和我们的方法在SHIFT数据集上的定性结果,最右边是真实值。我们可以观察到,由于缺乏域自适应,Faster RCNN无法检测对象,而与我们的方法相比,AT有大量的小误报边界框,我们提出的方法与GT非常相似。

0d97f43fd8bae0607acb4e2ad49c1a9d.png

目前在很多城市为了赶工,有许多工地都是夜晚进行作业,为了作业过程中的安全施工以及非员工潜入等问题,某建筑企业采用了AI技术进行安全生产和管理。

047db33adcef75874fe1a8a1560fc125.png c10060a17d7b2f306384b8e185d26f8d.png

ac3ec4a6087708b3f0bf9e7b882096d5.png

© THE END 

e7dbc51d27064e00cb3a18c168d77631.gif

转载请联系本公众号获得授权

a346ccfdc2579d17630b2e19069b0183.gif

计算机视觉研究院学习群等你加入!

ABOUT

计算机视觉研究院

计算机视觉研究院主要涉及深度学习领域,主要致力于目标检测、目标跟踪、图像分割、OCR、模型量化、模型部署等研究方向。研究院每日分享最新的论文算法新框架,提供论文一键下载,并分享实战项目。研究院主要着重”技术研究“和“实践落地”。研究院会针对不同领域分享实践过程,让大家真正体会摆脱理论的真实场景,培养爱动手编程爱动脑思考的习惯!

385cac09ff39d838f65032473d117e91.png

 往期推荐 

🔗

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

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

相关文章

反转了,中国发售5G手机,ASML就出售先进光刻机,跪地求饶

日前据《中国日报》等多家知名媒体确认,ASML已获得荷兰许可出售先进的2000i光刻机,这款光刻机可用于生产7纳米工艺,而就在数天前一家中国手机企业发布了国产化的5G手机,采用国产的5G芯片和5G射频芯片,这实在太巧合了。…

Linux持续学习者的必备工具:文本处理神器awk

引言 作为一名Linux持续学习者,我们经常需要处理各种各样的文本文件,例如日志文件、配置文件等。而对于大规模的文本数据,手动处理往往效率低下且容易出错。那么,有没有一种快速而强大的工具可以帮助我们进行文本处理呢&#xff1…

废品回收功能文档

废品回收 基础版 后台功能 功能字段描述二级分类表字段:图标、名称、描述、图片、注意事项、上一级、状态功能:前端展示和筛选;增删改查今日指导价表字段:关联分类、名称、价格、单位、状态功能:前端展示和预估价格&…

基于java+springboot+vue的考研资讯平台-lw

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: ssm mybatis Maven mysql5.7或8.0等等组成,B…

Windows Network File System Remote Code Execution Vulnerability

文章目录 NFS(Network File System)漏洞描述攻击者如何利用此漏洞?该漏洞的危险程度机密性-high真实性-high可用性-high 如何降低漏洞风险推荐阅读 NFS(Network File System)漏洞描述 Name Microsoft Windows Network File System Remote Code Execution Vulnerabi…

IM即时聊天项目

目录 IM即时聊天项目WebSocket 原理搭建环境设置代理创建环境配置驱动(搭建环境需要的驱动)conf(配置信息)cache(redis)model(数据库连接) 用户注册serializermodelserviceapirouter…

CSS中如何实现元素的旋转和缩放效果?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 元素的旋转和缩放效果⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅!这个专栏是为那些对Web开发感兴趣、刚刚踏…

打卡智能中国(六):村里出了“飞行员”

提起返乡青年,你的第一印象是什么?失败、躺平、卷不动了? 我们在浙江、福建、青海等地,参观一些农业智能化项目时,陪同参观的“飞手”,高兴地跟我们分享自己的心路历程: 在家门口做农业无人机操…

每日一题 98验证二叉搜索树(中序遍历)

题目 给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下: 节点的左子树只包含 小于 当前节点的数。节点的右子树只包含 大于 当前节点的数。所有左子树和右子树自身必须也是二叉搜索树。 示例 1&#xff1a…

Java-API简析_java.net.Inet4Address类(基于 Latest JDK)(浅析源码)

【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) https://blog.csdn.net/m0_69908381/article/details/132643590 出自【进步*于辰的博客】 因为我发现目前,我对Java-API的学习意识比较薄弱…

2023开学礼新疆财经大学图书馆藏八一新书《乡村振兴战略下传统村落文化旅游设计》许少辉新财经理工

2023开学礼新疆财经大学图书馆藏八一新书《乡村振兴战略下传统村落文化旅游设计》许少辉新财经理工

【经济研究】论文《经济ZC不确定性与创新》数据复现

数据简介:当前宏观经济面临较大下行压力,需要“稳中求进”兼顾经济高质量发展与经济增速等多种目标,这就不可避免地导致各种经济ZC的频繁调整,产生不确定性风险。在此背景下,经济政策不确定性上升如何影响企业决策&…

无涯教程-JavaScript - RANK函数

RANK函数取代了Excel 2010中的RANK.EQ函数。 描述 该函数返回数字列表中数字的等级。数字的等级是其相对于列表中其他值的大小。 如果对列表进行排序,则数字的排名将是其位置。 语法 RANK (number,ref,[order])争论 Argument描述Required/OptionalNumberThe number whose…

c++11 标准模板(STL)(std::basic_stringstream)(四)

定义于头文件 <sstream> template< class CharT, class Traits std::char_traits<CharT> > class basic_stringstream;(C11 前)template< class CharT, class Traits std::char_traits<CharT>, class Allocator std::alloc…

C++插入加密,替代加密

void 插入加密() {//缘由https://bbs.csdn.net/topics/396047473int n 1, j 0;char aa[60]{}, aaa[] "abcde";cin >> aa;while (j < 60 && (aa[j] - \0))cout << aa[j] << aaa[j % 5]; } void 插入加密() {//缘由https://bbs.csdn.n…

如何快速掌握一门新技术,有什么独特的学习方法和技巧可以分享吗?

今日话题&#xff1a;如何快速掌握一门新技术&#xff0c;有什么独特的学习方法和技巧可以分享吗&#xff1f; 这个话题引起了我的思考和总结&#xff0c;现在的技术这么多&#xff0c;我们该如何高效的学习呢&#xff1f;我先总结一下我所了解的技术和学习的路径。 我的技术栈…

【Maven教程】(四)坐标与依赖:坐标概念,依赖配置、范围、传递性和最佳实践 ~

Maven 坐标与依赖 1️⃣ 什么是Maven 坐标2️⃣ 坐标详解3️⃣ 依赖的配置4️⃣ 依赖范围5️⃣ 传递性依赖6️⃣ 依赖调解7️⃣ 可选依赖8️⃣ 最佳实践8.1 排除依赖8.2 归类依赖8.3 优化依赖 &#x1f33e; 总结 正如前面文章所述&#xff0c;Maven 的一大功能是管理项目依赖…

【首发评测】国产大模型真落地,我用这5个问题为难了它们,结果你意想不到...

出品 | 网易科技《智见焦点》 作者 | 赵芙瑶 编辑 | 丁广胜 大模型的风暴席卷全球&#xff0c;然而对于普通C端用户来说&#xff0c;国产大模型的内测邀请码却总是“一码难求”&#xff0c;即使开放申请体验&#xff0c;排队时长也难以预估。 然而就在今日&#xff0c;备受行业…

2023面试系列 线程池用过居然不知道底层原理,啥也不是!

1.为什么使用线程池&#xff1a; 1. 减少线程频繁的创建跟销毁带来的性能消耗 2. 便于管理线程 3. 提高响应速度&#xff08;不用等待线程创建&#xff09; 4. 能提供更多的功能 2.线程池的创建方式&#xff1a; 通过Executors创建 通过ThreadPoolExecutor创建&#xff08…

【基础计算机网络1】认识计算机网络体系结构,了解计算机网络的大致模型(上)

前言 今天&#xff0c;小编我也要进入计算机网络的整个内容&#xff0c;虽然这个计算机网络的内容在考研部分中占比比较小&#xff0c;有些人不把这一部分当成重点&#xff0c;这种想法是错误的。我觉得考研的这四个内容都是非常重要的&#xff0c;我们需要进行全力以赴的对待每…