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层之后(是在一个已经建立的物体检测器的基础上构建的,增加了一个用于反射表示学习的解码器),也就是
首先通过将输入图片经过处理后得到的低亮度图像与原图像一起输入,经过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是结构相似系数。
式子中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,用于全…...
 
观成科技:隐蔽隧道工具Ligolo-ng加密流量分析
1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具,该工具基于TUN接口实现其功能,利用反向TCP/TLS连接建立一条隐蔽的通信信道,支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式,适应复杂网…...
内存分配函数malloc kmalloc vmalloc
内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...
系统设计 --- MongoDB亿级数据查询优化策略
系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log,共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题,不能使用ELK只能使用…...
 
华为OD机试-食堂供餐-二分法
import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...
土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等
🔍 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术,可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势,还能有效评价重大生态工程…...
MySQL中【正则表达式】用法
MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现(两者等价),用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例: 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...
【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分
一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计,提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合:各模块职责清晰,便于独立开发…...
 
tree 树组件大数据卡顿问题优化
问题背景 项目中有用到树组件用来做文件目录,但是由于这个树组件的节点越来越多,导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多,导致的浏览器卡顿,这里很明显就需要用到虚拟列表的技术&…...
 
使用Spring AI和MCP协议构建图片搜索服务
目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式(本地调用) SSE模式(远程调用) 4. 注册工具提…...
 
【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)
本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...
