自动驾驶之去光晕调研

news2024/9/24 4:22:42

中文版综述github

一、光晕类型

  • 常见去光晕算法的光晕

  • 去光晕算法的光晕之二(汇总)

样式包括有: halos(色圈), streaks(条纹), bright lines(亮线), saturated blobs(深污点), color bleeding(色渗), haze(烟雾), and many others。

二、光晕成因

一个理想的相机,当对焦时,应该支持从单个点光源射出的所有光线都可折射收敛到同一点(灰色)。
在实际中,真实的镜头散射和反射光沿着计划之外的路径,导致了光晕(蓝色和橙色)。

尽管这些光晕是无处不在的,在大部分图像中都是微不足道的。但是 当一个亮光源比其他部分亮度高几个量级时,这些小部分的散射和折射光会导致视觉上的光晕。

光晕主要分为两种: 散射导致的和折射导致的。

  • 散射光晕

    • 来源: 镜头瑕疵。包括工业瑕疵(例如压痕)、正常磨损(例如灰尘或刮痕)。
    • 成因: 大部分光线折射,而少部分光线散射或衍射,而不是沿着他们的既定路径. 灰尘导致类似于彩虹的效应,而刮痕导致放射性的条纹。散射也会降低光晕附近的对比度,导致朦胧的现象。
  • 反射光晕:
    来源: 在实际的镜头系统中,每个空气-镜片交界面会有 4 % 4\% 4%的反射。经过这些反射,光线到达镜头传感器的非既定位置。
    硬件方案: AR技术可以将空气-镜面界面的反射小于1%。但是该方法的有效性依赖于波长,所以这些光晕可能存在多种颜色,例如蓝色、粉色和紫色。

三、解决方案

3.1 硬件方案

高端相机使用精密的光流设计和材料来减少光晕。伴随着一些glass element加到镜头上来提高图像质量,同时也降低了从镜面反射的概率,常采用的技术是加入anti-reflective(AR) 涂层。这些涂层是昂贵的。

3.2 软件方案

基于镜头光晕的独一无二的shape、location或intensity检测光晕。然后使用图像修补来恢复光晕区域的flare.。但仅对部分类型的光晕点有效(例如bright spots)。

3.2.1 Automated Lens Flare Removal 2015

  • 方案:
    检测光晕 -> 恢复原图

1. Multiple Thresholding: 将图像转换为灰度图,使用一系列阈值进行二值化。
2. Contour Detection: 对每个二值化的图,找到轮廓。
3. Blob Merging: 计算每个blob的中心,以距离和相似度为度量,对所有二值化图像的blob融合,获取一系列的潜在可能的光晕候选。
4. Flare Candidates Filtering: 对候选框使用一些规则进行筛选。
5. Flare Mask Computation: 计算Flare Mask

在这里插入图片描述

3.2.2 Automatic Flare Spot Artifact Detection and Removal in Photographs. 2021

主要步骤:

  • 光源检测
  • 光晕点检测
    • Blob检测
    • 检测光晕点范围
    • 拒绝细长的Blobs
    • 在光晕点附近过度曝光
    • 最终光晕点的置信度度量
  • 光晕移除
    • 创建光晕点mask
    • 移除光晕
      在这里插入图片描述

3.2.3 Auto Removal of Bright Spot from Images Captured Against Flashing Light Source

主要处理: 太阳光源或/flashing光源下经常在背景出现的bright spot的问题。

原因: 光线通过光圈不完美反射或散射,或者不合适的入射角。

方案: 检测亮点->修复技术填充亮点区域。
在这里插入图片描述

3.2.4 data-driven方法

How to Train Neural Networks for Flare Removal (ICCV2021)
有数据集; 有训练代码; 模型权重需要自己训练。

  • 散射光晕的物理模型和光晕获取
    根据薄透镜(thin-len) 近似, 由pupil function
    P ( u , v ) P(u,v) P(u,v): 对于每光圈平面(aperture plane)上的点 ( u , v ) (u,v) (u,v), 镜头对波长为 λ \lambda λ入射波(an incident wave)振幅(amplityde)和相位(phase)的影响为:
    在这里插入图片描述

    其中, A A A为光圈方程,描述了光流的性质,表示了它入射波的衰减。简单形式下,含有光圈半径为 r r r的相机有如下光圈方程:
    在这里插入图片描述

ϕ λ \phi_{\lambda} ϕλ描述了相移(phase shift),依赖于波长和光源的3D位置 x , y , z x,y,z x,y,z,
在这里插入图片描述

ϕ S \phi^S ϕS由入射角决定,散角 ϕ D F \phi^{DF} ϕDF由光源的深度 z z z决定.

点扩散方程由傅里叶变换:
在这里插入图片描述

Sampling PSFs: 为了模仿灰尘和刮痕,在光圈方程 A A A上添加随机大小的点。共生成125个不同光圈。

在这里插入图片描述

  • 反射光晕和光晕获取

很难通过精准的光流计算,因此在实验室环境内获取。

  • 人造训练集
    在这里插入图片描述

  • 模型训练结果
    注意要把光源保留
    在这里插入图片描述
    在这里插入图片描述

3.3 软硬件结合方案

结合3.1和3.2.

三、其它自动驾驶夜晚红绿灯方案

红绿灯模块根据自身的位置查找地图,可以获得前方红绿灯的坐标位置。通过标定参数,可以将红绿灯从世界坐标系投影到图像坐标系,从而完成相机的自适应选择切换。选定相机后,在投影区域外选取一个较大的感兴趣区域,在其中运行红绿灯检测来获得精确的红绿灯框位置,并根据此红绿灯框的位置进行红绿灯的颜色识别,得到红绿灯当前的状态。得到单帧的红绿灯状态后,通过时序的滤波矫正算法进一步确认红绿灯的最终状态。我们提出的基于CNN的红绿灯的检测和识别算法具有极高的召回率和准确率,可以支持白天和夜晚的红绿灯检测识别。

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

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

相关文章

JSP SSH校园兼职信息发布平台myeclipse开发mysql数据库MVC模式java编程计算机网页设计

一、源码特点 JSP SSH校园兼职信息发布平台是一套完善的web设计系统(系统采用ssh框架进行设计开发),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采 用B/S模式开发。开发环境为TOMCA…

Docker Images Explore

Docker Images Explore scratch an explicitly empty image, especially for building images “FROM scratch” You can use Docker’s reserved, minimal image, scratch, as a starting point for building containers. Using the scratch “image” signals to the build …

自定义键盘快捷键调节电脑音量

外接的键盘没有Fn。。。也没有调音量的键😅于是想自己弄一个 方法一:修改注册表键盘映射 新建记事本文件打开,粘贴如下内容: Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Key…

Idea 调试自定义 AbstractProcessor 程序

我们常使用的 Lombok 可以自动生成 gettr 和 setter 方法,使用起来非常方便;有时候我们也要去实现自己的注解处理器,实现一些在编译阶段需要执行的逻辑,例如我之前写的 spring cloud 自动生成 openfeign 的Fallback 降级方法;自动生成 openfeign 的Fallback 但是自定义注…

JavaEE进阶:SpringBoot概念、创建和运⾏

文章目录一、Spring Boot 优点二、Spring Boot 项⽬创建1、使用 Idea 创建① 准备工作② 创建项目③ 注意事项2、网页版创建(了解)三、项目目录介绍和运行1、运行项目2、输出 Hello world四、注意事项:包路径错误1、正确路径2、小结&#xff…

第十四届蓝桥杯集训——JavaC组第九篇——三元运算符

第十四届蓝桥杯集训——JavaC组第九篇——三元运算符 一元运算符(一元运算符有1个操作数) ,- -都是运算符,- -可分为前,后+和前-,后减如果在后面,如:num 10;先参与运算,然…

基于混合NSGA II-MOPSO算法的热电联合经济排放调度(Matlab代码实现)【混合多目标遗传算法-多目标粒子群算法】

💥💥💥💞💞💞欢迎来到本博客❤️❤️❤️💥💥💥 🚀支持:🎁🎁🎁如果觉得博主的文章还不错或者您用得到的话&…

游戏开发43课 移动游戏性能优化1

1. 前言 很多年前就想将这些年工作中积累的优化经验撰写成文章,但懒癌缠身,迟迟未动手,近期总算潜下心写成文章。 涉及到具体优化技巧时,博主会尽量阐述原理和依据,让读者知其然也知其所以然。要完全读懂这篇文章&am…

尚医通MyBatis-Plus入门、添加、主键策略(二)

目录: (1)MyBatis-Plus入门案例 (2)MyBatis-Plus-添加和主键生成策略 (1)MyBatis-Plus入门案例 简介: MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具&a…

c51单片机烧录程序 控制台显示正在检测目标单片机

问题 c51单片机烧录程序 控制台显示正在检测目标单片机 详细问题 笔者使用单片机型号STC89C52, 进行程序烧录。控制台显示正在检测目标单片机 解决方案 将单片机型号由STC89C52更改为STC89C52RC 即 原因 STC89C52与STC89C52RC属于不同型号,STC89C…

NoSQL数据库原理与应用综合项目——起始篇

NoSQL数据库原理与应用综合项目——起始篇 文章目录NoSQL数据库原理与应用综合项目——起始篇0、 写在前面1、项目说明1.1 项目背景1.2 项目功能2、数据集和数据预处理2.1 数据集2.2 数据预处理2.2.1 图书出版日期字段的处理2.2.2 添加id字段2.2.3 价格字段的处理2.2.4 打折字段…

chatgpt接入微信

背景 chatgpt是一个有趣的、聪明的AI机器人。很多人希望可以把这个机器人接入微信群聊里面。 介绍 本项目,使用python制作了一个微信群聊机器人。 微信群聊机器人群聊里面,被艾特后,会基于被艾特的内容,发送对应的文本。可以使…

CVE-2019-15107 webmin RCE漏洞复现

今天继续给大家介绍渗透测试相关知识,本文主要内容是CVE-2019-15107 webadmin RCE漏洞复现。 免责声明: 本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负! 再次强调&#xf…

【测绘程序设计】——椭球面弧长计算

椭球面弧长计算主要指——①根据纬度计算子午线弧长(B→X);②由子午线弧长求大地纬度(X→B)。它们主要用在高斯投影之中。本文分享了测绘程序设计——椭球面弧长计算(C#版与Python版),相关源代码(绝对完整,直接运行)及使用示例如下。 目录 Part.Ⅰ 使用示例Chap.Ⅰ …

redis基础

redis是一个基于内存的Key-Value数据库 1.基于内存存储,读写性能高 2.适合存储热点数据(热点商品、咨询、新闻) 3.NoSQL,不仅仅是SQL,泛指关系数据库 关系型数据库 Mysql Oracle DB2 SQLServer 非关系型数据…

参数化集成测试

我们在开发项目的过程中遇到了复杂的业务需求,测试同学没有办法帮我们覆盖每一个场景;或者是我们自己在做代码功能升级、技改,而不是业务需求的时候,可能没有测试资源帮我们做测试,那这个时候就需要依靠自己的单元测试…

数据结构之树相关概念的知识铺垫

文章目录前言1.树的相关介绍2. 树的表示3.二叉树概念及结构4.二叉树的性质5.二叉树相关概念练习6.总结前言 之前对数组结构中线性结构进行了相关的介绍,本文将开始对非线性结构进行相关的介绍,首先介绍的是树,会围绕树的相关概念进行初步的简…

记住这三个方法,让你的钱越花越多

小狗钱钱 关于作者 本书作者博多•舍费尔,是德国著名的投资 家、企业家、演说家以及畅销书作家。他 人生中曾出现过严重的财务危机,但他凭 着自己的努力,重新获得了财务自甶。这 段经历让他产生了和更多人分享理财知识 的想法,《…

玩以太坊链上项目的必备技能(类型-映射类型-Solidity之旅四)

映射(Mapping) 说到映射(Mapping),有过其它编程语言经验的您,对这是再熟悉不过了。Solidity 中的映射(Mapping) 与Java的Map、Go里的Map以及javascript的JSON等众多编程语言中的Map…

考虑柔性负荷的综合能源系统低碳经济优化调度【考虑碳交易机制】(Matlab代码实现)

👨‍🎓个人主页:研学社的博客 💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜…