【红外DDE算法】数字细节增强算法的缘由与效果(我对FLIR文档详解)

1. 为什么红外系统中图像大多是14bit(甚至更高)?
一个红外系统的性能经常以其探测的范围来区别,以及其对最小等效温差指标。首先是探测的范围,就是常说的动态范围,意思是探测器能够检测到温度红外信号的范围。然后是最小等效温差,意思是探测器能够检测到的最小温度差。
这就好比一把尺子,有两个重要指标。第一,就是尺子的量程,意思是它能丈量多少长度范围的物体;第二,就是尺子的最小刻度,就是它能够分辨多少精度的长度。
在自然界中,红外信号不同于可见光,动态范围比较宽,而且物体信号的差异比较小。所以我们需要高bit的ADC(模数转换器)去采集红外信号。常用的ADC位宽有:12bit 、14bit 、16bit。
2. 相机的14bit数据怎么显示?
许多模拟和数字视频接口都要求是8位,而且人类只能识别图像中约128级灰阶(7位)。要想将显示14位数据,就得将动态范围有效地限制到256级灰阶。因此,需要一种从14bit到8 bit的对应关系或者方法。一般常用的就是“滑位显示”,比如Camera link采集卡上显示采集到的超过8位 的灰度图像。
但是在红外图像中,不能采取该办法。“滑位显示”方法显示高8位的数据,那么低位的数据就被舍弃,这样的显示必然会丢失细节。
所以这种高动态范围的红外图像显示并不是那么简单,既然相机“看到”了,并不一定可准确不失真的显示,让人眼也“看见”。
3. DDE算法的提出
为了解决这14bit至8bit显示的问题,既要能够保障图像的整体信息,又能够保障图像的细节既可能被保留。FLIR 提出了一种算法,帮助用户解决在高动态范围场景中克服低对比度目标检测的难题。FLIR称之为 数字图像细节增强(DDE)。FLIR在《Technical Note --DDE 》对其描述如此:“DDE是一种改进的非线性图像处理算法,可以保留高动态范围图像中的细节。图像细节得到增强,从而与原始图像的总动态范围相匹配,这样即使在极端的温度动态范围的场景中,操作员也能够看清细节。”
4. FLIR的理论示例
使用一个理论上的五个温度目标(ΔT≈200mK)的图像,分别对比采用“线性映射”,“HE直方图均衡”,DDE算法进行处理。在这三张图,五组“栅状目标”隐藏其中,每一个目标较其所在的背景的温度高出大约200mK的温度值。

图1 采用AGC(线性映射)算法 (看不到目标)

图2 采用HE(直方图均衡)算法 (只能看到一个目标)

图3 采用DDE算法 (所有目标都能看到)
采用FLIR的DDE算法(如图3),5个目标都能被同时看到。而且呢,这五个目标的对比度相同,和特定动态范围中有多少像素无关。这就使得DDE在不管场景如何变化下,都是有效且可预测的。
传统的AGC算法消除了极端值,然后将动态范围线性映射到8bit域。然而,这对高动态范围视频几乎没有帮助。HE直方图均衡化,增加了主要灰度分布的温度/辐照度范围的对比度。如果目标不在那个主要灰度分布动态范围内吗? DDE为细节分配了可用对比度的预定义部分。低对比度物体的检测概率在图像上是恒定的。
5. 我的 DDE实例
图4-图8展示的一个相当高动态范围场景的图片序列。图4 是采用标准的AGC(线性映射)算法,该算法将截止(省略)一些极端像素,这样就使得位于直方图的绝大部分灰度形成更大对比度。

图4 采用标准的AGC(线性映射)算法
在图5-图7中,使用ImageJ软件是人为的调整以便拉伸部分灰度范围,以更好的显示目标。

图5 图像的低灰度信号范围
在图5中,使用ImageJ软件拉伸图像中灰度值较低的像素值,可以发现:经过拉伸,可以看到如箭头所示的指示牌信息以及树木草丛细节。这些潜在的信息在图4中观察不到。

图6 图像的中间灰度信号范围
在图6中,使用ImageJ软件拉伸图像中灰度值处于中间的像素值,可以发现:经过拉伸,可以看到楼宇清晰的边缘信息。楼宇突出的边缘部分和楼宇的其他外墙是有显著的温度差异得到了很好的表现。在图4中,这些差异的显示是微弱的,原始图像中的这些细节差异已然被损失。

图7 图像的高灰度信号范围
在图7中,使用ImageJ软件拉伸图像中灰度值较高的像素值,可以发现:经过拉伸,可以看到楼宇右侧外墙的边缘信息,以及广告牌上的文字信息。而在图4中,这些信号差异没有那么明显。

图8 采用DDE算法,可以同时观察到所有目标。
最后,图8显示了使用Luster的DDE算法。 可以同时观察到所有目标。 在图像中可以看到非常少的伪影(artifacts)。
6. 不同厂家的图像增强算法
针对高动态范围的红外图像的压缩显示,不同的厂家有自己的算法命名,比如:Leonardo称其算法为GLACE(local contrast enhancement ),局部对比度增强算法;Xenics称其算法XIE( Xenics image enhancement ),Xenics图像增强。究其本质都是为了将大动态范围红外图像中低对比度目标显示出来。

【红外DDE算法】数字细节增强算法的缘由与效果(我对FLIR文档详解)的更多相关文章

  1. 数字麦克风PDM转PCM与STM32 I2S接口应用----重要文档列表

    数字麦克风PDM脉冲到PCM信号需要一个二次采样,ST 提过了PDM2PCM的软件包,可以完成上面的工作.软件包源码没有开源,使用手册也简洁的让人抓狂,我觉得可能是因为ST更高级的MCU直接带了硬解码 ...

  2. Taurus.MVC 2.3 开源发布:增强属性Require验证功能,自带WebAPI文档生成功能

    背景: 上周,把 Taurus.MVC 在 Linux (CentOS7) 上部署任务完成后. 也不知怎么的,忽然就想给框架集成一下WebAPI文档功能,所以就动手了. 以为一天能搞完,结果,好几天过 ...

  3. 【红外DDE算法】聊聊红外图像增强算法的历史进程(第一回)

    宽动态红外图像增强算法综述回顾过去带你回顾宽动态红外图像增强算法的历史进程,历来学者的一步步革命(新的算法框架提出),一步步改革(改进优化),从简单粗暴到细致全面.正所谓是:改革没有完成时,只有进行时 ...

  4. 图像增强之DDE---基于红外图像的数字图像细节增强DDE

    (1)DDE应用背景 (2)DDE算法简介 (3)DDE 实现 (4)DDE 总结和不足 ----------author:pkf -----------------time:2-9 -------- ...

  5. 基于Matlab的MMSE的语音增强算法的研究

    本课题隶属于学校的创新性课题研究项目.2012年就已经做完了,今天一并拿来发表.   目录: --基于谱减法的语音信号增强算法..................................... ...

  6. ABBYY FineReader 15 中保存和导出PDF文档的小细节

    运用ABBYY FineReader OCR文字识别软件,用户能将各种格式的PDF文档保存为新的PDF文档.PDF/A格式文档,以及Microsoft Word.Excel.PPT等格式.在保存与导出 ...

  7. 深入探究JVM之垃圾回收算法实现细节

    @ 目录 前言 垃圾回收算法实现细节 根节点枚举 安全点 安全区域 记忆集和卡表 写屏障 并发的可达性分析 低延迟GC Shenandoah ZGC 总结 前言 本篇紧接上文,主要讲解垃圾回收算法的实 ...

  8. 夜晚场景图像ISP增强算法

    夜晚场景图像ISP增强算法 输入输出接口 Input: (1)图像视频分辨率(整型int) (2)图像视频格式(RGB,YUV,MP4等) (3)摄像头标定参数(中心位置(x,y)和5个畸变 系数(2 ...

  9. 机器学习之Adaboost (自适应增强)算法

    注:本篇博文是根据其他优秀博文编写的,我只是对其改变了知识的排序,另外代码是<机器学习实战>中的.转载请标明出处及参考资料. 1 Adaboost 算法实现过程 1.1 什么是 Adabo ...

随机推荐

  1. poll 和 select 底层的数据结构

    poll 和 select 系统调用的真正实现是相当地简单, 对那些感兴趣于它如何工作的人; epoll 更加复杂一点但是建立在同样的机制上. 无论何时用户应用程序调用 poll, select, 或 ...

  2. Apply,Call,bind对比

    apply.call call和apply都是为了改变上下文背景存在的,即改变函数内部指向 javascript一大特点是函数存在定义时的上下文,运行时的上下文和上下文可改变的概念 apply.cal ...

  3. 2018.10.26 浪在ACM 集训队第二次测试赛

    2018.10.26 浪在ACM 集训队第二次测试赛 整理人:苗学林 A海港 参考博客:[1]:李继朋https://www.cnblogs.com/violet-acmer/p/9859006.ht ...

  4. vue-learning:14 - js - new Vue(options)中option

    new Vue(options)中option 2019-4-14 Vue的核心是数据驱动,在template中实现视图逻辑,在javascript中实现业务逻辑.要通过模板template将数据显示 ...

  5. AndroidStudio手动安装插件

    由于网络原因,android studio 的插件市场经常不能打开或者不能下载,这种情况我们可以手动下载插件的压缩包,再手动安装. 第一步,打开https://plugins.jetbrains.co ...

  6. 初识Contiv

    Contiv是一个用于跨虚拟机.裸机.公有云或私有云的异构容器部署的开源容器网络架构.作为业界最强大的容器网络架构,Contiv具有2层.3层.overlay和ACI模式,能够与思科基础设施进行本地集 ...

  7. Vijos1774 机器翻译 [模拟]

    1.题意:给定一段长度为N个单词的文章(一个单词用一个非负整数表示),可以使用一个容量为M个元素的容器.你的任务是使用字典的帮助翻译文章,遇到一个单词,查询之后将此单词的释义放入容器中,下次遇到时若此 ...

  8. stm32外部时钟源8M换成12M后库函数相应修改总结

    前言 在做“自制继电器上位机控制软件”项目的时候,下位机用到USB虚拟串口,将以前写好的USB虚拟串口程序移植到下位机,发现程序计算机无法识别到虚拟串口STMicroelectronics Virtu ...

  9. 将 Sidecar 容器带入新的阶段

    作者 | 徐迪.张晓宇 导读:本文根据徐迪和张晓宇在 KubeCon NA 2019 大会分享整理.分享将会从以下几个方面进行切入:首先会简单介绍一下什么是 Sidecar 容器:其次,会分享几个阿里 ...

  10. golang实现依赖注入

    golang实现依赖注入 依赖注入是软件工程中经常使用到的一种技术,它提供了一种控制反转的机制,把控制权利交给了调用方.调用方来决定使用哪些参数,哪些对象来进行具体的业务逻辑. 它有几个好处: 1 它 ...