Boosting Object Detection with Zero-Shot Day-Night Domain Adaptation
摘要:低亮度场景检测是一个小众且重要的方向,首先在于数据集和过往的研究都集中在光照充足的环境下,其次如果使用传统的训练方法的话由于训练难度大,模型效果也不会很好,有幸的是,现在关于低亮度的研究已经提上日程,且有了一些进展,通过收集和标注低光照场景下的数据集,和相关检测方法的研究,有了长足的进步。本文提出一个Boosting Object Detection with Zero-Shot Day-Night Domain Adaptation,作用是将dectors从高亮度场景扩展到低亮度场景,而不需要低亮度场景的数据。首先创建一个反射表示学习模型,学习图像中的照明不变性,并采用精心设计的照明不变性强化策略。同时引入互换-重分解-一致性过程,通过进行两次序列图像分解并引入重分解一致性损失,改进了传统的Retinex图像分解过程。
照明不变性使之物体在不同光照条件下仍然能保持良好的检测性能。照明不变性强化策略是为了加强学习过程,设计一种照明不变性强化策略,包含设定特定的损失函数,使模型在训练的时候更加关注学习如何在不同光照条件下保持一致的特征表示。
互换-重分解-一致性过程:互换-重分解涉及对图像的两次分解,以提取更准确的反射成分,第一次分解采用传统的方法,第二次分解是基于第一次分解的基础上进行的。引入了重分解一致性损失,用于确保在两次分解中提取到的反射成分之间保持一致性,这意味着,模型在进行重分解的时候,应该尽量保持之前分解结果的特征不变,从而提高分解的稳定性和准确性。
研究进展:郭某提出的zeroDCE是一种无参考图像的图像特定光增强曲线估计方法,(该方法不需要与其他图像进行比较,而是根据图像本身来进行增强),显然是一种图像增强策略。
理论支持:图像可分解为反射率和照明两个部分,可以通过这两个成分的逐元素乘法来重建图像。(有的使用反射率作为增强后的图像,有的调整照明亮度)。有的研究是进行反射率和照明图的分解,从而实现光增强和去噪。有的利用混合双层搜索策略找到所需要的网络结构。有人通过Transformer结构同时建模反射率和照明过程中的干扰。
低光照检测的不同方法和策略:1,通过增强进行检测:首先利用低光照增强技术生成明亮的图像,然后再进行物体检测,通过增强图像的亮度和对比度,使得物体检测算法能够在增强后的图像上进行更加有效的检测。
2,...怎么感觉没啥区别啊(增强,用于检测):侧重于图像恢复训练流程来提高物体的检测性能,在训练阶段,增强技术用于改善图片的质量(感觉和1没啥区别)。
3,低光照检测学习策略:专注于开发新的学习策略(也就是训练的网络结构),具体策略包括:
- 多模型合并:(可以参考,毕竟提升精度之后就是讲故事了),通过结合多个模型输出来提高检测性能。
- 多任务自编码转化:(有点难懂):同时进行多个任务的学习,提高模型的泛化能力。
- 无监督领域适应框架:在没有标注数据的情况下,适应不同的领域(从白天到夜晚的转化)。
嘻嘻,可以用来做研究的数据集。
又着重强调了一下自己的特点,在没有真实的低光照数据支持的情况下,从光照良好的数据中学习,训练出来的检测器能够在低光照条件下进行有效的物体检测。
DA是领域适应,DG是领域泛化。背景是很多感知任务在黑暗场景下的研究主要集中在领域转义学习上,就是将模型从一个领域(在本文所涉及的领域上是光照良好的领域)迁移到另一个领域(低光照领域)。
DA的尝试是:合成低光照图像来扩展自己的训练集,通过自监督学习对齐良好光照和低光照的分布。将两个领域中学习到的组件进行合并。
DG是指在不知道目标领域的情况下对未见过的领域进行泛化。旨在为广泛的目标领域提供通用的解决方案,而不是针对某一个领域。
Zero-Shot Day-Night Domain Adaptation, ZSDA,作者提出的属于DA范畴。真实低光照数据不可获取,但是目标领域已知为低光照场景。
论文中提到,直接使用低光照数据进行训练,效果要比使用高光照数据要差得多
首先通过将输入图片经过处理后得到的低亮度图像与原图像一起输入,经过DAI-NET层之后(是在一个已经建立的物体检测器的基础上构建的,增加了一个用于反射表示学习的解码器),也就是
得到计算损失,同时将原图像在互换-重分解-一致性过程中的损失考虑在内,进一步加强了发射表示的学习。
基于啥啥啥理论,原始图像先分解为光照和反射率表示。理论假设可见度是基于光照而不是反射率。在不同的光照条件下,物体的颜色和纹理不会改变,但是由于照明的变化,图像的整体亮度和对比度可能有所不同。在ZSDA背景下,反射率被视作照明不变的对应物,获取反射率只是对实现照明不变的检测器至关重要。照明不变检测器:通过学习和利用反射率,检测器能够在不同的光照条件下保持一致的性能。

上图是将原始图片分解为L和R的过程。
下面就是网络结构:认为图像分割是一种低级视觉任务,主要从图像中获取基本信息,为了实现这一目标,作者将检测器的骨干网络在第二个卷积层出进行了分割,分割的前部称之为gf,后部称之为gb。gf的输出也就是F,编码了由浅层提取的低级信息,适用于解码发射率,gf之后分支出反射率解码器,是一个轻量级的模块,由两个ReLU激活函数组成。(检测头和发射解码器共享gf)。
为了更好的监督反射率解码器,作者利用了一个预训练分解网络来生成反射率和照明的真实数据。
不同光照强度下的图像会导致不同的特征分布。但是图片本身具有相同的语义信息,不会随着光照强度的改变而改变。要求保证特征对齐,也就是从gf输出的特征F要保持相似。
Lmfa:为了保持特征的对齐,设置了特征损失对齐函数,![]()
KL(⋅∣∣⋅) 表示 Kullback-Leibler 散度(KL Divergence),用于衡量两个概率分布之间的差异。
Fn表示从光照良好的图像中提取的特征图,Fl表示从低光照的图像中提取到的特征图。(是从gf提取,经过展平和空间平均之后得到的)。最小化Lmfa,模型可以促进良好的光照和低光照之间的特征提取,这个特征(代表语音信息)理应是相同的。有助于模型在不同光照条件下保持一致性。
别急,还有更加强大的图像分解工具:

首先还是基于那啥啥理论,将光照不良的图像分解为左边两个光照和反射率图像,将光照良好的图像分解为右侧的光照和反射率图像。理想情况下,L1和Ln应该是相同的,并且可以互换,以便在结合相应的照明图时进行重构。
惩罚是互换反射率重建图像,一旦偏离原始输入,就产生惩罚,(这叫做基于惩罚的约束)。

总损失如下:
上式中,Ldecom表示的是图像分解损失,是对输入图像的重建,反射率不变性以及光照平滑性进行综合评估。
式子中MSE表示亮反射率和暗反射率之间的差异,SSIM是结构相似系数。
小的损失没有细讲。
训练上通过调整参数来对应不同的数据集。
作者提出了他们的不足,合成的低光图像(也就是Dark ISP)合成的图像在训练效果上是落后于真实的低光图像的,这点有改进的空间。
论文写作tip:通过与自己的对比实验,本文中使用辅助分支以及同时解码光照和反射率的方法效果都不如对反射率单独解码,证明单独解码发射率的方法更有效。
相关文章:
Boosting Object Detection with Zero-Shot Day-Night Domain Adaptation
摘要:低亮度场景检测是一个小众且重要的方向,首先在于数据集和过往的研究都集中在光照充足的环境下,其次如果使用传统的训练方法的话由于训练难度大,模型效果也不会很好,有幸的是,现在关于低亮度的研究已经…...
Chromium html<lable>c++接口定义
HTML <label> 元素(标签)表示用户界面中某个元素的说明。 1、<label> 在html_tag_names.json5中接口定义: (third_party\blink\renderer\core\html\html_tag_names.json5) {name: "label",inte…...
QT中中文显示乱码问题
在VS2013中用QT开发GUI应用程序,Qt中显示中文乱码 一: //解决QT中中文显示乱码问题 #pragma execution_character_set("utf-8") 二:在main函数中添加以下代码: #include <QTextCodec>void main() {QTextCod…...
[面试常见]Javascript基础知识
#1024程序员节|征文# Object.assign 和对象扩展运算符有什么区别?是深拷贝还是浅拷贝? 都进行浅拷贝,只赋值对象的第一层属性,而不会递归复制整个对象结构 **const mergedObj Object.assign({},obj1,obj2) JavaScript 中 Map 和 Object 的区别是什么?…...
使用注解@ExcelIgnoreUnannotated实现了在导出 Excel 时忽略没有被标注的字段
ExcelIgnoreUnannotated 注解用于在使用 Apache POI 或其他 Excel 处理库时,指示在导出 Excel 时忽略没有被标注的字段。这意味着只有被特定注解(如 ExcelProperty)标注的字段会被处理和导出。 作用 简化导出过程:只导出需要的字…...
线程的同步
目录 引入 认识条件变量 快速认识接口编辑 认识条件变量编辑 测试代码编辑 生产消费模型 为何要使用生产者消费者模型 理解 编写生产消费模型 BlockingQueue 单生产单消费 多生产多消费 引入 同步:在保证数据安全的前提下,让线程…...
【启明智显分享】ZX7981PG/ZX7981PM融入官方OpenWrt,启明智显SDK/官方OpenWrt任由选择!
好消息!好消息!启明智显ZX7981PG和ZX7981PM正式融入官方 OpenWrt 的大家庭啦!现在开发者不仅可以基于启明智显的SDK进行二次开发,还可以直接应用官方OpenWrt以及我们的开源资料进行开发! 借助OpenWrt的强大生态&…...
如何用java发送包含表格形式的邮件
问题: 如何用java发送包含表格形式的邮件? 方法: 发用freemaker工具来替换html的表格变量,从而动态生成了html。然后再发送这个html格式(不能用纯文本)文本即可。 优化流程: 1、准备模板&#x…...
讲个故事:关于一次接口性能优化的心里路程
这是一个程序猿写的第一个故事,请各位懂行的客官静下心来,慢慢品读。就知道我为什么要单独写一个文章来记录这次过程了,因为实在是太坎坷了...... 背景介绍 近期项目投产时遇到一个问题,投产后在验证时发现大部分用户系统登…...
Centos7升级到openssh9.9
openssh9.9 是2024.9.20出的最新版ssh。因为客户扫描出一大堆centos7的漏洞,全是这个openssh的,好多补丁,所以索性升级到最新版。 需要自己制作rpm包,这个我是不懂,照这个来: Linux服务器升级openssh9.9最…...
使用 STM32F407 串口实现 485 通信
准备工作 了解485通信基本概念与原理:RS485通信详解_485通讯de接什么口-CSDN博客 安装编译软件:keil uVision 5.6 软件资料:STM32CubeF4 固件包,正点原子RS485通信例程 参考视频:第26讲 基础篇-新建H…...
基于NERF技术重建学习笔记
NeRF(Neural Radiance Fields)是一种用于3D场景重建的神经网络模型,能够从2D图像生成逼真的3D渲染效果。它将场景表征为一个连续的5D函数,利用了体积渲染和神经网络的结合,通过学习光线穿过空间时的颜色和密度来重建场…...
webView 支持全屏播放
webView 支持全屏播放 直接上代码 public class CustomFullScreenWebViewClient extends WebChromeClient {WebView webView;Context context;/*** 视频全屏参数*/protected static final FrameLayout.LayoutParams COVER_SCREEN_PARAMS new FrameLayout.LayoutParams(ViewG…...
QGIS之三十二DEM地形导出三维模型gltf
效果 1、准备数据 (1)dem.tif (2)dom.tif 2、qgis加载dem和dom数据 3、安装插件 插件步骤可以参考这篇文章 QGIS之二十四安装插件 安装了Qgis2threejs插件,结果...
【python爬虫】携程旅行景点游客数据分析与可视化
一.选题背景 随着旅游业的快速发展,越来越多的人选择通过互联网平台预订旅行产品,其中携程网作为国内领先的在线旅行服务提供商,拥有大量的旅游产品和用户数据。利用爬虫技术可以获取携程网上各个景点的游客数据,包括游客数量、游…...
python实现onvif协议下控制摄像头变焦,以及融合人形识别与跟踪控制
#1024程序员节 | 征文# 这两天才因为项目需要,对网络摄像头的视频采集以及实现人形识别与跟踪技术。对于onvif协议自然起先也没有任何的了解。但是购买的摄像头是SONY网络头是用在其他地方的。因为前期支持探究项目解决方案,就直接拿来做demo测试使用。 …...
【Vue】Vue3.0(十四)接口,泛型和自定义类型的概念及使用
上篇文章: 【Vue】Vue3.0(十三)中标签属性ref(加在普通标签上、加在组件标签上)、局部样式 🏡作者主页:点击! 🤖Vue专栏:点击! ⏰️创作时间&…...
【C++】红黑树万字详解(一文彻底搞懂红黑树的底层逻辑)
目录 00.引入 01.红黑树的性质 02.红黑树的定义 03.红黑树的插入 1.按照二叉搜索树的规则插入新节点 2.检测新节点插入后,是否满足红黑树的性质 1.uncle节点存在且为红色 2.uncle节点不存在 3.uncle节点存在且为黑色 04.验证红黑树 00.引入 和AVL树一样&am…...
开源FluentFTP实操,操控FTP文件
概述:通过FluentFTP库,轻松在.NET中实现FTP功能。支持判断、创建、删除文件夹,判断文件是否存在,实现上传、下载和删除文件。简便而强大的FTP操作,提升文件传输效率。 在.NET中,使用FluentFTP库可以方便地…...
论文解读 | ECCV2024 AutoEval-Video:一个用于评估大型视觉-语言模型在开放式视频问答中的自动基准测试...
点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入! 点击 阅读原文 观看作者讲解回放! 作者简介 陈修元,上海交通大学清源研究院硕士生 概述 总结来说,我们提出了一个新颖且具有挑战性的基准测试AutoEvalVideo,用于全…...
Leetcode 3576. Transform Array to All Equal Elements
Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到…...
线程与协程
1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...
376. Wiggle Subsequence
376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...
Ascend NPU上适配Step-Audio模型
1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统,支持多语言对话(如 中文,英文,日语),语音情感(如 开心,悲伤)&#x…...
Axios请求超时重发机制
Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式: 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...
Spring数据访问模块设计
前面我们已经完成了IoC和web模块的设计,聪明的码友立马就知道了,该到数据访问模块了,要不就这俩玩个6啊,查库势在必行,至此,它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据(数据库、No…...
关键领域软件测试的突围之路:如何破解安全与效率的平衡难题
在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件,这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下,实现高效测试与快速迭代?这一命题正考验着…...
消息队列系统设计与实践全解析
文章目录 🚀 消息队列系统设计与实践全解析🔍 一、消息队列选型1.1 业务场景匹配矩阵1.2 吞吐量/延迟/可靠性权衡💡 权衡决策框架 1.3 运维复杂度评估🔧 运维成本降低策略 🏗️ 二、典型架构设计2.1 分布式事务最终一致…...
Java详解LeetCode 热题 100(26):LeetCode 142. 环形链表 II(Linked List Cycle II)详解
文章目录 1. 题目描述1.1 链表节点定义 2. 理解题目2.1 问题可视化2.2 核心挑战 3. 解法一:HashSet 标记访问法3.1 算法思路3.2 Java代码实现3.3 详细执行过程演示3.4 执行结果示例3.5 复杂度分析3.6 优缺点分析 4. 解法二:Floyd 快慢指针法(…...
[拓扑优化] 1.概述
常见的拓扑优化方法有:均匀化法、变密度法、渐进结构优化法、水平集法、移动可变形组件法等。 常见的数值计算方法有:有限元法、有限差分法、边界元法、离散元法、无网格法、扩展有限元法、等几何分析等。 将上述数值计算方法与拓扑优化方法结合&#…...
