红外视觉1:近红外与中远红外图像

2023-11-12

红外视觉1:近红外与中远红外图像

这篇博客将介绍红外成像的基础知识,包括:

  • 什么是红外图像:近红外与中远/远红外(Near vs Mid-Far Infrared/Far infrared)
  • 红外热像仪的类型
  • 用途
  1. 红外视觉简介:近红外与中远红外图像(今天的教程)
  2. 热视觉2:使用Python和OpenCV从图像中测量温度
  3. 热视觉3:使用Python和OpenCV的发烧探测器(入门项目)
  4. 热视觉4:使用Pytorch和YOLOv5进行夜景对象检测(实际项目)

1. 效果图

左图人眼彩色图(可见光图) VS 右图(可见光&近红外光图) ,增加一个近红外阻挡滤光片玻璃过滤近红外光就是人眼的成像。
在这里插入图片描述

2. 原理

2.1 什么是红外图像:近红外与远红外(Near vs. mid-far infrared)

数码相机内部的传感器不仅能够捕获可见光或辐射,还能够捕获来自太阳和人造聚光灯的近红外光。
然而,眼睛无法感知红外辐射,所以我们看到的周围世界是彩色的。如下左图;**为了复制眼睛的工作方式,数码相机通常在传感器和镜头之间包括一个近红外阻挡滤光片玻璃。出于这个原因,传感器只捕获可见光,就像眼睛一样。

在少数不包括此滤光片的情况下,有一个近红外相机,可以拍摄如下右图所示的照片,同时捕获可见光。
所以如果从相机上物理取下玻璃滤光片,将获得一个惊人的可见光和近红外捕获设备!
在这里插入图片描述

2.2 电磁光谱图及成像分类

在这里插入图片描述

从上边的电磁波谱图(Electromagnetic spectrum)可以看出:可见光的波长从紫色(380 nm)变为红色(750 nm),近红外辐射从大约760 nm变为1500 nm。

如果没有近红外阻挡滤光片,常见的可见光数码相机就变成了近红外和可见光相机,这时相机光谱响应的最高光吸收发生在可见光部分,在400和750 nm之间。

但是,如果想在红外辐射内部使用不同的波长(即中红外和远红外或长红外)会发生什么?
答案是需要一种不同的技术,称为热红外成像(thermal infrared imaging)

大约1500 nm至100万nm之间的是中红外和长/远红外;

使用小型热像仪拍摄的中红外/远红外拍到的热成像图如下所示:
在这里插入图片描述

成像分类:根据目前的技术,有两种类型的红外图像:

1. 近红外 Near-infrared (NIR)
2. 中远红外(中红外、远红外)Middle-far infrared (MIR, FIR)

2.3 近红外及夜视相机

普通的彩色或单色可见光相机可以很容易地转换为近红外和可见光相机。捕获的近红外辐射使我们能够在黑暗中看到,这就是为什么通常称它们为夜视相机。 通常包括单色或黑白传感器,这项技术需要一个外部人工聚光灯来照亮拍摄的夜景。为此,夜间监控摄像机在镜头周围包括一个 LED 红外光环

除安全监控之外,近红外相机还有很多有趣用途。

在这里插入图片描述

2.4 中红外/远红外相机

这种成像需要一种不同的技术,称为热像仪(thermal cameras)。为什么称之为热成像摄像机,是因为该技术使得能够通过获取温度分布图来测量任何场景的温度。

在这里插入图片描述
如上图所示,使用热成像仪测量烧烤温度分布。左图是可见的彩色图像。右图是热成像图像。这就是捕获中远红外辐射背后的“魔力”。

下一教程将介绍:生成的图像采用灰度格式,并使用不同的惊人调色板着色,使得能够实时测量和显示每个像素的温度。

与近红外相机一样,这项技术使得能够在黑暗中看到物体。更重要的是不需要外部人造聚光灯/手电筒来照亮夜景。 是的,中远红外是更强的“魔术”!

2.5 近红外,夜视相机,中红外/远红外相机的用途

夜视摄像机通常用作监控安全摄像机。

近红外最常见的用途是:

  • 面部和虹膜生物识别(Facial and iris biometric recognition)

  • 动物生存研究(Animal research surveillance)

  • 狩猎(Hunting)

    生物识别是一种需求量很大的技术,可以完全融入日常生活。例如这些摄像头可以在智能手机中找到,用于虹膜或面部识别。因此可以在晚上,在质量差的照明条件下,甚至在戴着太阳镜时验证身份以进行银行交易或解锁设备。

    动物生存研究是这项技术的另一个聪明用途。如下图可以看到这些设备中的几种如何分布在特定的野生区域,为生物学家研究人员提供可靠的知识,例如关于山猫活动的知识。同样,猎人可以检测和跟踪所需鹿的移动。

在这里插入图片描述

中远/远红外相机用途
最后将学习热成像摄像机的常见用途,热成像摄像机是一种比近红外相机更昂贵的技术。然而尽管成本较高,但受益于不需要限制工作距离的人造聚光灯。

为了充分利用其温度测量功能,这些相机用于以下用途:

  • 野火探测 (Wildfire detection)

  • 电气面板和电子设备监控(Electric panels and electronic device supervision)

  • 2019冠状病毒温度访客监测控制(COVID-19 temperature access control)

    不幸的是地球上每年遭受数百场野火的袭击。为了解决这个问题,嵌入无人机中的热像仪可以帮助消防。
    在这里插入图片描述
    中远红外热像仪的常见用途。左上角火灾区域检测,右上角电面板热分布,左下角用于高效设计的电子PCB温度图,右下角:COVID-19 温度监测访问控制。

    在工业中,热像仪在获取分布加热图方面非常有帮助,可以在设计过程中优化电气和电子设备或故障预防。还可用于预防和检测流体泄漏和水分问题(detecting fluid leaks and moisture problems)。
    最后但并非最不重要的一点是,由于COVID-19病毒,热成像摄像机可以监测访客的温度。

总结,这篇博客介绍了什么是红外图像以及近红外(NIR)和中远红外(MIR和FIR)图像之间的区别,并认识到支持它们的不同技术,以及这些特殊相机的常见用途。
下一篇博客将介绍热成像以及如何使用这些特殊图像之一来测量温度。

参考

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

红外视觉1:近红外与中远红外图像 的相关文章

  • 安装了 32 位的 Python,显示为 64 位

    我需要运行 32 位版本的 Python 我认为这就是我在我的机器上运行的 因为这是我下载的安装程序 当我重新运行安装程序时 它会将当前安装的 Python 版本称为 Python 3 5 32 位 然而当我跑步时platform arch
  • Pandas/Google BigQuery:架构不匹配导致上传失败

    我的谷歌表中的架构如下所示 price datetime DATETIME symbol STRING bid open FLOAT bid high FLOAT bid low FLOAT bid close FLOAT ask open
  • 处理 Python 行为测试框架中的异常

    我一直在考虑从鼻子转向行为测试 摩卡 柴等已经宠坏了我 到目前为止一切都很好 但除了以下之外 我似乎无法找出任何测试异常的方法 then It throws a KeyError exception def step impl contex
  • 使用 Python 从文本中删除非英语单词

    我正在 python 上进行数据清理练习 我正在清理的文本包含我想删除的意大利语单词 我一直在网上搜索是否可以使用像 nltk 这样的工具包在 Python 上执行此操作 例如给出一些文本 Io andiamo to the beach w
  • 将 python2.7 与 Emacs 24.3 和 python-mode.el 一起使用

    我是 Emacs 新手 我正在尝试设置我的 python 环境 到目前为止 我已经了解到在 python 缓冲区中使用 python mode el C c C c将当前缓冲区的内容加载到交互式 python shell 中 显然使用了什么
  • 独立滚动矩阵的行

    我有一个矩阵 准确地说 是 2d numpy ndarray A np array 4 0 0 1 2 3 0 0 5 我想滚动每一行A根据另一个数组中的滚动值独立地 r np array 2 0 1 也就是说 我想这样做 print np
  • Pandas Merge (pd.merge) 如何设置索引和连接

    我有两个 pandas 数据框 dfLeft 和 dfRight 以日期作为索引 dfLeft cusip factorL date 2012 01 03 XXXX 4 5 2012 01 03 YYYY 6 2 2012 01 04 XX
  • datetime.datetime.now() 返回旧值

    我正在通过匹配日期查找 python 中的数据存储条目 我想要的是每天选择 今天 的条目 但由于某种原因 当我将代码上传到 gae 服务器时 它只能工作一天 第二天它仍然返回相同的值 例如当我上传代码并在 07 01 2014 执行它时 它
  • 如何使用python在一个文件中写入多行

    如果我知道要写多少行 我就知道如何将多行写入一个文件 但是 当我想写多行时 问题就出现了 但是 我不知道它们会是多少 我正在开发一个应用程序 它从网站上抓取并将结果的链接存储在文本文件中 但是 我们不知道它会回复多少行 我的代码现在如下 r
  • 加快网络抓取速度

    我正在使用一个非常简单的网络抓取工具抓取 23770 个网页scrapy 我对 scrapy 甚至 python 都很陌生 但设法编写了一个可以完成这项工作的蜘蛛 然而 它确实很慢 爬行 23770 个页面大约需要 28 小时 我看过scr
  • Jupyter Notebook 找不到 Python 模块

    不知道发生了什么 但每当我使用 ipython 氢 原子 或 jupyter 笔记本时都找不到任何已安装的模块 我知道我安装了 pandas 但笔记本说找不到 我应该补充一点 当我正常运行脚本时 python script py 它确实导入
  • 不同编程语言中的浮点数学

    我知道浮点数学充其量可能是丑陋的 但我想知道是否有人可以解释以下怪癖 在大多数编程语言中 我测试了 0 4 到 0 2 的加法会产生轻微的错误 而 0 4 0 1 0 1 则不会产生错误 两者计算不平等的原因是什么 在各自的编程语言中可以采
  • import matplotlib.pyplot 给出 AttributeError: 'NoneType' 对象没有属性 'is_interactive'

    我尝试在 Pycharm 控制台中导入 matplotlib pyplt import matplotlib pyplot as plt 然后作为回报我得到 Traceback most recent call last File D Pr
  • Python:XML 内所有标签名称中的字符串替换(将连字符替换为下划线)

    我有一个格式不太好的 XML 标签名称内有连字符 我想用下划线替换它 以便能够与 lxml objectify 一起使用 我想替换所有标签名称 包括嵌套的子标签 示例 XML
  • 如何解决 PDFBox 没有 unicode 映射错误?

    我有一个现有的 PDF 文件 我想使用 python 脚本将其转换为 Excel 文件 目前正在使用PDFBox 但是存在多个类似以下错误 org apache pdfbox pdmodel font PDType0Font toUnico
  • python import inside函数隐藏现有变量

    我在我正在处理的多子模块项目中遇到了一个奇怪的 UnboundLocalError 分配之前引用的局部变量 问题 并将其精简为这个片段 使用标准库中的日志记录模块 import logging def foo logging info fo
  • 使用for循环时如何获取前一个元素? [复制]

    这个问题在这里已经有答案了 可能的重复 Python 循环内的上一个和下一个值 https stackoverflow com questions 1011938 python previous and next values inside
  • 如何计算Python中字典中最常见的前10个值

    我对 python 和一般编程都很陌生 所以请友善 我正在尝试分析包含音乐信息的 csv 文件并返回最常听的前 n 个乐队 从下面的代码中 每听一首歌曲都是一个列表中的字典条目 格式如下 album Exile on Main Street
  • cv2.VideoWriter:请求一个元组作为 Size 参数,然后拒绝它

    我正在使用 OpenCV 4 0 和 Python 3 7 创建延时视频 构造 VideoWriter 对象时 文档表示 Size 参数应该是一个元组 当我给它一个元组时 它拒绝它 当我尝试用其他东西替换它时 它不会接受它 因为它说参数不是
  • 使用随机放置的 NaN 创建示例 numpy 数组

    出于测试目的 我想创建一个M by Nnumpy 数组与c随机放置的 NaN import numpy as np M 10 N 5 c 15 A np random randn M N A mask np nan 我在创建时遇到问题mas

随机推荐

  • Java面试丨JVM高频面试题

    文章目录 Java内存区域 JVM的主要组成部分及作用 JVM运行时数据区域 关于HotSpot虚拟机对象问题 对象是如何创建的 创建对象时内存是如何分配的 如何处理并发安全问题 对象的内存布局 对象的访问方式有哪些 内存溢出异常问题 Ja
  • idea如何解决jar包冲突

    jar包冲突是我们在日常开发中比较常见的问题 所以快速的定位问题以及解决掉它才能提高我们的开发速度 文章目录 jar 包冲突常见的一些问题 如何定位并解决冲突 jar 包冲突常见的一些问题 当出现下面问题异常的时候 如果clean jar包
  • 自定义的插件如何加载到Qt Designer中(详细)

    要想在Qt Designer中使用自定义控件 必须要使Qt Designer能够知道我们的自定义控件的存在 有两种方法可以把新自定义控件的信息通知给Qt Designer 升级 promotion 法和插件法 升级法最为简便快捷 顾名思义
  • 通信专题(一)——曼彻斯特编码

    前言 为了方便查看博客 特意申请了一个公众号 附上二维码 有兴趣的朋友可以关注 和我一起讨论学习 一起享受技术 一起成长 1 简介 在电信与数据存储中 曼彻斯特编码 Manchester coding 又称自同步码 相位编码 phase e
  • 【CSS】css清除单选按钮/多选按钮的默认样式

    多选按钮的样式把radio换成checkbox label input type radio appearance none webkit appearance none outline none margin 0 vertical ali
  • 80-600-020-原理-存储引擎-简介

    文章目录 1 概述 2 存储引擎介绍 第三方存储引擎 存储引擎选取参考因素 表引擎转换方法 1 概述 Mysql 采用插件式存储引擎架构 可以根据不同的需求为不同的表设置不同点存储引擎 表状态查询语句 以user表为例 USE mysql
  • 电路中的VDD,DVDD,AVDD,VCC,AFVDD,DOVDD,IOVDD的区别

    电路中的VDD DVDD AVDD VCC AFVDD DOVDD IOVDD的区别 VCC表示给芯片电源供电 VDD表示给芯片中的器件单独供电 当然也可也从内部电源的VCC整合过来 就不用外部单独提供 所以有些芯片只有VCC 没有VDD
  • 基站定位算法

    定位技术有 两种 一种是基于 GPS 的定位 一种是基于移动运营网的基站的定位 基于移动运营网基站定位服务又叫做移动位置服务 LBS Location Based Service 它是通过电信移动运营商的网络 如 GSM 网 获取移动终端用
  • vim使用技巧 多行注释、取消注释

    1 背景 大家使用vim编辑器经常会遇到批量注释或取消注释的需求 本人亦是如此 写本文前参考了其他文章 感谢他们的好文 写该文的目的用于记录 防止遗忘 和分享 2 总结 方便时间久了遗忘快速回忆 块选择方法 vim多行内容批量注释 vim打
  • QT中大connect的使用

    有时候为了测试方便 就直接在main函数中使用按钮的connect 但是必须添加QObject 否则会出错
  • 半年统计了, 个人业绩 独占 25% 哈哈 , 至少

    哈哈 潜在 业绩 整体的 15
  • TVM Compiler中文教程:TVM使用autotvm调优NVIDIA GPU上的高性能卷积

    文章目录 TVM使用autotvm调优NVIDIA GPU上的高性能卷积 加载依赖库 步骤一 定义搜索空间 步骤二 搜索空间 TVM使用autotvm调优NVIDIA GPU上的高性能卷积 这是为NVIDIA GPU编写高性能可调模板的高级
  • day39-Oracle分区表

    0目录 Oracle分区表 1 2 3 1 Oracle分区表 1 1 作用 Oracle数据库的分区把表中的数据行按照分区划成几个区域 提高大数据量下表的性能 1 2 应用场景 常应用于数据量大的表 1 3 分类 Oracle中有范围分区
  • cannot find -lc 出现这个问题怎么解决呢

    如果是在自己写完静态库后 你发现在编译文件后报出cannot find lc 的错误 你就安装一下这个就可以百分百解决啦 sudo yum install glibc static
  • 线代控制理论7——反馈、镇定、状态观测器

    注 本文是在MOOC平台上学习西北工业大学 现代控制理论基础 郭建国 赵斌 郭宗易 的课程进行随笔记录与整理 一 两类反馈及其影响 反馈可以分为两种形式 状态反馈与输出反馈 反馈形式 反馈方程 动态方程 传递函数 状态反馈 u kx v x
  • #git的储存原理探索

    git的储存原理探索 在Git中 每个commit ID的信息 如cc127537978af35e2f502da7e8d22e340ed810e5 就是一个SHA 1 Hash值 它是对那个commit是Git仓库中内容和头信息 Heade
  • stm32、IO口、中断、串口、定时器讲解

    目录 一 IO口的八种模式 二 IO口的配置 三 外部中断配置 四 串口配置 五 定时器配置 六 项目 一 IO口的八种模式 输入 浮空输入 浮空 顾名思义 就相当与此端口在默认情况下什么都不接 呈高阻态 这种设置在数据传输时用的比较多 上
  • android面试题大全 android面试题总结

    android面试题大全 android面试题总结 1 Android系统的架构 Android系统架构之应用程序 Android会同一系列核心应用程序包一起发布 该应用程序包包括email客户端 SMS短消息程序 日历 地图 浏览器 联系
  • 有序顺序表中插入一个元素,使其仍然有序

    define MAXSIZE 100 define OK 1 define OVERFLOW 2 include
  • 红外视觉1:近红外与中远红外图像

    红外视觉1 近红外与中远红外图像 这篇博客将介绍红外成像的基础知识 包括 什么是红外图像 近红外与中远 远红外 Near vs Mid Far Infrared Far infrared 红外热像仪的类型 用途 红外视觉简介 近红外与中远红