不良条件视觉感知专栏(一)任务前言

news2024/11/25 12:53:21
  前言  随着深度学习的流行,CNN的强大特征学习能力给计算机视觉领域带来了巨大的提升。2D/3D目标检测、语义分割是常见的视觉感知任务,本专栏我们将围绕着它们展开阐述。

本教程禁止转载。同时,本教程来自知识星球【CV技术指南】更多技术教程,可加入星球学习。

Transformer、目标检测、语义分割交流群

欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读、CV招聘信息。

CV各大方向专栏与各个部署框架最全教程整理

(一)任务介绍

检测和分割是场景理解的关键部分,在机器人、无人驾驶、安防等领域有着广泛的应用。现有的大部分方法主要在正常的成像条件下进行,虽然在性能表现上较好,但是并没有考虑到不良条件(恶劣天气、低光照等)下的场景。现实中的场景是复杂多变的,包含着很多不良的条件给视觉算法带来不利的影响。下面我汇总了常见的不良感知场景,大概可以分为天气和光照两部分:

  • 雾天(Foggy)

  • 雨天(Rainy)

  • 雪天(Snowy)

  • 黄昏(Dusk)

  • 夜晚(Night)

  • 黑夜(Dark Night)比普通的夜晚更黑,只包含极少的光照

  • 强曝光(Strong exposure)**强曝光是指在环境中光线的突然增强**

  • 阴暗(Overcast)

下图为不良感知场景的示例:

强曝光和黑夜

雾天和雨天

一个不能处理巨大场景变化的模型,如果应用在无人驾驶等领域上可能会危及周围的人。在一些基准数据集表现很好的模型,在现实中往往鲁棒性很差。这是因为它们通过正常条件数据集训练得到的,这些模型往往不适用于恶劣的天气条件和夜间出现的低照明。在不良条件下进行稳健鲁棒的视觉感知,是算法落地并融入实际应用的重要先决条件。

(二)研究现状

现阶段针对不良条件的视觉感知,研究的方法分为很多种:

  • 域自适应

  • 多模态融合(LiDAR 点云和深度图)

  • 图像前处理(可微滤波器、GAN)

感觉这个方向热度并没有纯视觉感知(3D目标检测、语义分割等)热度高,可能是因为针对不良条件的视觉感知场景泛化偏向于应用。正因如此,这个方向现在可以填的坑是很多的,有很多的可做性和意义。

域自适应

域自适应的定义:在经典的机器学习中,当 源域 和 目标域 数据分布不同,但是两者的任务相同时,这种特殊 的迁移学习就是域自适应(Domain Adaptation)。

我们一般假设训练集和测试集分布一致,但是在实际中训练集和测试集其实分布会有很大的差异。这时候训练的模型在测试集上效果却不理想迁移学习需要解决的问题。简单举例来说:

  • 我们使用白天场景的数据集进行语义分割模型的训练,但是测试集确实夜晚的。这时虽然我们这个模型要解决的任务和标签都是一样的,但是模型缺缺少鲁棒。

域自适应的方法:

  • 样本自适应:对源数据的样本进行加权,学习一组权重使分布差异最小化,从而逼近目标域的分布。

  • 特征自适应:将源域和目标域投影到公共特征子空间,这样两者的分布相匹配,通过学习公共的特征表示,这样在公共特征空间,源域和目标域的分布就会相同。

多模态(传感器)融合

Camera和LiDAR是现如今主要的传感器,被广泛地用在无人驾驶和机器人等领域。Camera和LiDAR的特征我通过以下表格进行对比:

传感器提供信息优点缺点
Camera(相机)纹理信息包含着丰富的纹理,网络学习更容易。相机的图片非常容易受光照和天气影响,无法提供深度信息。
LiDAR(激光雷达)深度信息提供3D点云,受光照和天气影响较小。无法捕捉详细纹理,LiDAR的点云是稀疏无序的,利用起来较难。

我们通过上表可以发现Camera和LiDAR是几乎互补的,如果结合起来会产生不错的效果。多模态传感器融合意味着信息互补、稳定和安全,长期以来都是自动驾驶感知的重要一环。然而信息利用的不充分、原始数据的噪声及各个传感器间的错位(如时间戳不同步),这些因素都导致融合性能一直受限。

目前多模态融合是自动驾驶中的一个很热门的方向,有着很多的融合方法。但是这些研究方法只是在考虑如何更高效地融合两种模态,并没有完全考虑不良条件与多模态进行结合。研究的重点在于融合的几种方式,如下图。

在这之外,还有一些方法将图片和其他传感器(比如说红外相机、热相机)进行融合,如HeatNet(IROS2019)。

图像前处理(可微滤波器、GAN)

这是一种深度学习与传统方法相结合的思路,由此产生了可微滤波器。可微滤波器是指可以通过神经网络进行训练的一种图像算子。可微滤波器用于图像网络的前处理,通过对图像的细节进行恢复。滤波器会进行一些数据的增强,比如说去雾、去噪、对比度和亮度等操作,将图片恢复到正常的条件下。

还有一种方法是通过GAN进行网络的前处理,比如说一个黑夜的图片我通过GAN将它变成白天场景。下图的方法通过训练一个CyCle GAN,可以满足图片从白天到黑夜的相互转化:

  • 白天->黑夜: 使用生成的数据集进行训练,进行场景的泛化。

  • 黑夜->白天:作为网络输入前图片的处理。

 欢迎关注公众号CV技术指南,专注于计算机视觉的技术总结、最新技术跟踪、经典论文解读、CV招聘信息。

【技术文档】《从零搭建pytorch模型教程》122页PDF下载

QQ交流群:470899183。群内有大佬负责解答大家的日常学习、科研、代码问题。

模型部署交流群:732145323。用于计算机视觉方面的模型部署、高性能计算、优化加速、技术学习等方面的交流。

其它文章

上线一天,4k star | Facebook:Segment Anything

3090单卡5小时,每个人都能训练专属ChatGPT,港科大开源LMFlow

Efficient-HRNet | EfficientNet思想+HRNet技术会不会更强更快呢?

实践教程|GPU 利用率低常见原因分析及优化

ICLR 2023 | SoftMatch: 实现半监督学习中伪标签的质量和数量的trade-off

目标检测创新:一种基于区域的半监督方法,部分标签即可(附原论文下载)

CNN的反击!InceptionNeXt: 当 Inception 遇上 ConvNeXt

神经网络的可解释性分析:14种归因算法

无痛涨点:目标检测优化的实用Trick

详解PyTorch编译并调用自定义CUDA算子的三种方式

深度学习训练模型时,GPU显存不够怎么办?

CV各大方向专栏与各个部署框架最全教程整理

计算机视觉入门1v3辅导班

计算机视觉各个方向交流群

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

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

相关文章

Photoshop如何使用图像调色之实例演示?

文章目录 0.引言1.将一张偏冷调的图像调整成暖调2.将图像调整成不同季节色彩倾向3.变换花朵的颜色4.创建人像轮廓风景5.修饰蓝天白云6.调换花草颜色 0.引言 因科研等多场景需要进行绘图处理,笔者对PS进行了学习,本文通过《Photoshop2021入门教程》及其配…

【经典论文解读】YOLACT 实例分割(YOLOv5、YOLOv8实例分割的基础)

前言 YOLACT是经典的单阶段、实时、实例分割方法,在YOLOv5和YOLOv8中的实例分割,也是基于 YOLACT实现的,有必要理解一下它的模型结构和设计思路。 论文:YOLACT: Real-time Instance Segmentation 开源地址:https://gi…

01-Shiro550漏洞流程

1. 漏洞原理 Apache Shiro框架提供了记住密码的功能(RememberMe),用户登录成功后会生成经过加密并编码的cookie。在服务端对rememberMe的cookie值,先base64解码然后AES解密再反序列化,就导致了反序列化RCE漏洞。 那么…

hadoop伪分布式搭建教程

官方参数文档 Apache Hadoop 3.3.5 – HDFS Users Guide Hadoop是一个分布式存储和计算框架,由以下几个组件组成: 1. Hadoop Distributed File System (HDFS):Hadoop分布式文件系统,用于存储大量数据,并提供高可靠性和…

Spring源码:动态代理的增强顺序(AOP与事务的先后)

前文: 《Spring AOP源码:开启注解读取》 《Spring AOP源码2:查找增强器》 《Spring AOP源码3:实现代理》 《Spring事务源码:创建代理类》 《Spring事务源码:事务创建》 《Spring事务源码:…

(05)基础强化:字符串拘留池,格式化,StringBuilder,垃圾回收,弱引用

一、复习 1.什么是接口?说说你对接口的理解。 (提示:概念、语法、应用场景,与抽象类的区别。说出最特别的) 接口是一种规范、标准,一种抽象的概念,所以本身无法实现&#…

Redis基础——Java客户端Jedis

2.1.Jedis客户端 Jedis的官网地址&#xff1a; https://github.com/redis/jedis 2.1.1.快速入门 我们先来个快速入门&#xff1a; 1&#xff09;引入依赖&#xff1a; <!--jedis--> <dependency><groupId>redis.clients</groupId><artifactId&…

山东专升本计算机第九章-信息安全

信息安全 计算机病毒 考点 4病毒的定义与特点 定义 • 一组人为设计的程序满足一定条件即被激活 特点 • 可执行性 • 破坏性 • 占用系统资源 • 破坏或删除程序或数据文件 • 传染性 • 潜伏性 • 隐蔽性 • 针对性 • 宏病毒只感染docx • 衍生性 • 抗反病毒软…

102-Linux_I/O复用方法之poll

文章目录 1.poll系统调用的作用2.poll的原型3.poll支持的事件类型4.poll实现TCP服务器(1)服务器端代码:(2)客户端代码:(3)运行结果截图: 1.poll系统调用的作用 poll 系统调用和 select 类似&#xff0c;也是在指定时间内轮询一定数量的文件描述符&#xff0c;以测试其中是否有…

docker容器原理及简单且详细的使用

docker原理简单介绍 docker是一种虚拟化容器技术。 虚拟化&#xff1a;早期为了节约成本和学习只有在宿主机中基于 kvm&#xff08;基于内核的虚拟机&#xff09;等技术虚拟出来完整的操作系统&#xff0c;而这个完整的操作系统会大量的占用宿主机的硬件资源&#xff0c;当创建…

spring的安装 -- IEDA-创建 Java 工程的jar包教程--以及spring5的核心组件

目录 Spring Spring 基本介绍 Spring5 下载 进入 Spring5 进入 Spring5 的 github 进入 Spring5 的 github下拉 Access to Binaries, 进入 Spring -----拷贝下载地址&#xff0c;打开--- -----选择 5.3.8, 点击进入, 即可下载- 在线文档: 离 线 文 档 : 离 线 API: …

【刷题之路Ⅱ】LeetCode 92. 反转链表 II

【刷题之路Ⅱ】LeetCode 92. 反转链表 II 一、题目描述二、解题1、方法1——穿针引线法1.1、思路分析1.2、代码实现 2、方法2——针对进阶的头插法2.1、思路分析2.2、代码实现 一、题目描述 原题连接&#xff1a; 92. 反转链表 II 题目描述&#xff1a; 给你单链表的头指针 he…

基于全过程通道相关像素值顺序的彩色图像可逆数据隐藏

文献学习&#xff1a; 基于全过程通道相关像素值顺序的彩色图像可逆数据隐藏 原文题目&#xff1a; Reversible data hiding for color images based on pixel value order of overall process channel. 发表期刊&#xff1a; Signal Processing&#xff08;中科院二区&#xf…

AOP(面向切面编程)

3、AOP 3.1、场景模拟 3.1.1、声明接口 声明计算器接口Calculator&#xff0c;包含加减乘除的抽象方法 public interface Calculator {int add(int i, int j);int sub(int i, int j);int mul(int i, int j);int div(int i, int j); }3.1.2、创建实现类 public class Calcul…

osgGA::CameraManipulator类computeHomePosition函数分析

osgGA::CameraManipulator类computeHomePosition函数代码如下&#xff1a; void CameraManipulator::computeHomePosition(const osg::Camera *camera, bool useBoundingBox) {if (getNode()){osg::BoundingSphere boundingSphere;OSG_INFO<<" CameraManipulator::…

继续细说文件

先来了解几个函数&#xff1a; fopen&#xff0c;这个函数有2个参数分别为&#xff08;字符串也就是要记得打引号&#xff09;路径&#xff0c;和&#xff08;字符串&#xff09;操作模式&#xff0c;返回值为FILE类型的指针&#xff0c;也就是一个指向文件信息的结构的指针&a…

Java 基础入门篇(五)——— 面向对象编程

文章目录 一、面向对象的思想二、类的定义与对象的创建三、对象内存分配情况 ★ 3.1 两个对象的内存图3.2 两个变量指向同一个对象内存图 四、构造器4.1 构造器的格式与分类4.2 构造器的调用 五、 this 关键字六、封装七、标准JavaBean补充&#xff1a;局部变量和成员变量的区别…

【计算机网络详解】——物理层(学习笔记)

&#x1f4d6; 前言&#xff1a;今天我们将一起探索电脑网络中最基础的一层&#xff0c;物理层。从摩斯电码到光纤传输的高速互联网时代&#xff0c;物理层在不断发展和创新。让我们一起深入到网络通讯的本质&#xff0c;探究物理层与我们的日常联系密不可分的原因。 目录 &…

面试篇:Spring

一、Spring框架的单例bean是线程安全的吗&#xff1f; 1、Spring框架中的bean是单例的吗&#xff1f; spring框架中的bean是单例的&#xff0c;在默认情况下是singleton模式&#xff0c;即单例模式。如果需要更改则可以在Scope注解设置为prototype为多例模式。 singleton:bea…

ECharts---X轴文字显示不全

原因&#xff1a; X轴标签文字过多导致显示不全解决方法&#xff1a;(一)xAxis 中添加 xAxis.axisLabel 属性 axisLabel是用来设置x轴的刻度以及一些参数的设置&#xff1a; (1)interval设置的是间隔数&#xff0c;把x轴分成10个间隔&#xff0c;根据x轴的数据自动划分份数值…