为 NVIDIA Jetson 和其他嵌入式系统选择合适的摄像头

简介: 本文详细介绍了为NVIDIA Jetson和其他嵌入式系统选择合适摄像头模块的关键因素,包括传感器类型(CCD和CMOS)、电子快门(全局快门和滚动快门)、彩色或单色传感器、动态范围、分辨率、帧率和接口等。文章还提供了光学器件的选择建议,并列出了NVIDIA摄像头模块合作伙伴,帮助用户完成从概念到生产的整个设计过程。

为 NVIDIA Jetson 和其他嵌入式系统选择合适的摄像头

摄像头模块是基于 AI 的嵌入式系统中最不可或缺的部分。市面上可供选择的摄像头模块多到令人难以抉择。本文将对这一过程进行详解,帮助您为包括 NVIDIA Jetson 在内的嵌入式应用做出正确的选择。

选择摄像头的注意事项

选择摄像头模块需要考虑三个关键方面:传感器、接口(连接器)和光学器件。

传感器

电子图像传感器分为两大类:电荷耦合器件(CCD)和有源像素传感器(CMOS)。CCD 传感器只能按行读取像素值,每行像素逐一移位到读出寄存器中。CMOS 传感器则可以单独并行读取每个像素。

在大多数情况下,CMOS 的成本和能耗更低,而且不影响图像质量。由于可以并行读取像素值,CMOS 还能实现更高的帧率。不过在某些特殊领域,CCD 传感器仍占主导地位,比如像天文学这种需要长时间曝光和极低噪点图像的领域。

电子快门

电子快门有全局快门和滚动快门这两个选项。全局快门将每个像素同时曝光在入射光下。滚动快门按一定顺序(例如从上到下)对像素行进行曝光,这可能会导致失真(图 1)。

img

图 1. 滚动快门导致螺旋桨叶片失真

全局快门不会受到物体移动造成的运动模糊和失真影响。由于曝光开始的时间点只有一个,使用全局快门更容易同步多台摄像机。不过,使用全局快门的传感器要比使用滚动快门的传感器昂贵得多。

彩色或单色

在大多数情况下,单色图像传感器足以胜任典型的机器视觉任务,比如故障检测、存在监测和记录测量等。

在单色传感器中,每个像素通常用 8 个 bits 来描述。而在彩色传感器中,每个像素由 8 bits 红色,8 bits 绿色和 8 bits 蓝色组成。彩色传感器需要处理的数据量是单色传感器的三倍,因此处理时间较长,帧率也较慢。

动态范围

动态范围是传感器获取的最大和最小信号之间的比率。在上限值,像素在较高的强度值(饱和度)下呈现白色;在下限值及以下,像素呈现黑色。室内应用需要至少 80 分贝的 HDR,室外应用则需要最高 140 分贝的 HDR。

分辨率

分辨率是传感器再现物体细节的能力。它受到多种因素的影响,如所使用的照明类型、传感器像素大小和光学器件的性能等。物体的细节越小,所需的分辨率就越高。

像素分辨率是指图像上每个像素等于多少毫米。分辨率越高,图像就越清晰。摄像头或传感器的分辨率应能覆盖至少两个像素的特征区域。

高分辨率的 CMOS 传感器往往帧率较低。即便传感器可以达到您所需要的分辨率,如果不能达到足够的每秒帧数,就无法捕捉到所需要的高质量图像。因此,评估传感器的速度非常重要。

确定用例所需分辨率的一般经验法则如图 2 所示。 乘数“2”表示通常希望物体上至少有两个像素,以便成功检测到物体。

img

img

图 2. 所需的传感器分辨率

取决于镜头视场和目标特征的大小

例如,假设有一张拳击手眼睛周围受伤的图像。

分辨率= 2×(2000/4)

视场角(毫米) = 2000 毫米

目标特征(眼睛)的大小(毫米)= 4 毫米

根据 1000 x 1000 的计算结果,100 万像素摄像头使用 CV 或 AI 算法应该足以检测到眼睛。

请注意,传感器是由多行像素组成的。这些像素也称为“光子”。像素收集到的光子数量与像素大小成正比。选择较大的像素看似诱人,但并非在所有情况下都是最佳选择。

img

表 1. 小像素和大像素的优缺点

背照式传感器可最大程度地提高每个光电二极管捕捉和转换的光量。在前照式传感器中,光电二极管上方的金属线会阻挡一些光子,从而减少捕捉到的光量。

img

图 3. 前照式结构(左)

和后照式结构(右)的截面图

帧率和快门速度

帧率是指每秒拍摄的帧数(或捕捉的图像)(FPS)。帧率应根据每秒所需的检测次数来确定。这与快门速度(或曝光时间)相关,快门速度是摄像头传感器为捕捉图像而曝光的时间。

理论上,最大帧率等于曝光时间的倒数。但由于帧读取、传感器分辨率和包括电缆在内的接口数据传输速率所带来的延迟,可实现的 FPS 将会较低于这个值。

通过增加额外的照明和对像素进行分档,可以减少对大量曝光时间的需求,从而提高 FPS。

CMOS 传感器读取每个像素的过程比 CCD 传感器移位寄存器中的电荷传输更快,因此可以实现更高的 FPS。

接口

有多种方法可以将摄像头模块连接到嵌入式系统。通常情况下,为了进行评估,会使用带有 USB 和以太网接口的摄像机,因为这样就不需要自定义驱动程序的开发。

选择接口时的其他重要参数包括传输长度、数据传输速率和工作条件。表 2 列出了最常用的接口。每种接口都各有利弊。

img

表 2. 各摄像头接口比较

光学器件

光学镜头的基本作用是收集物体的散射光,并在光敏图像传感器(CCD 或 CMOS)上再现物体的图像。在选择优化镜头时应考虑以下因素:焦距、传感器格式、视野、光圈、主光线角、分辨能力和畸变。

镜头有固定的几种标准焦距。常见的镜头焦距包括 6 毫米、8 毫米、12.5 毫米、25 毫米和 50 毫米。

在选择了焦距最接近成像系统所需焦距的镜头后,就需要调整工作距离,使被测物对焦。短焦距镜头(小于 12 毫米)产生的图像畸变较大。

如果您的应用对图像畸变敏感,请尝试增加工作距离并使用焦距较长的镜头。如果无法改变工作距离,那么在选择优化镜头时就会受到一定的限制。

img

表 3. 摄像机镜头的主要类型

将镜头安装到摄像机上时需要使用某种安装系统,必须确定机械稳定性(松动的镜头会产生失焦图像)以及与传感器的距离。

为确保不同镜头和摄像机之间的兼容性,我们定义了以下标准镜头卡口。

img

表 4. 嵌入式空间常用的镜头卡口

NVIDIA 摄像头模块合作伙伴

NVIDIA 与全球实力雄厚的摄像头模块制造商建立了一个丰富的合作生态圈。详情请查看 Jetson 合作伙伴支持的摄像头https://developer.nvidia.com/embedded/jetson-partner-supported-cameras?t1_supported-jetson-products=Orin

这些合作伙伴可以帮助您,为 NVIDIA Jetson 应用完成从概念到生产的整个成像系统设计过程。

img

图 4. NVIDIA Jetson 加摄像头模块的组合

可满足各行各业的不同需求

总结

本文介绍了为嵌入式应用选择摄像头时需要考虑的最重要的特性。这个选择过程似乎十分艰巨,您首先要了解在设计、性能、环境和成本方面的主要限制。

在了解限制后,重点关注与用例最相关的特性。例如,如果摄像头将被部署在远离计算中心的地方或恶劣的环境中,应考虑使用 GMSL 接口;如果摄像头将在弱光条件下使用,应考虑像素和传感器尺寸较大的摄像头模块;如果要将摄像头用于运动应用,可考虑使用带全局快门的摄像头。

目录
相关文章
|
7月前
|
传感器 数据采集 存储
ARM Linux摄像头传感器数据处理全景视野:从板端编码视频到高级应用(一)
ARM Linux摄像头传感器数据处理全景视野:从板端编码视频到高级应用
243 0
|
7月前
|
传感器 Linux 数据处理
ARM Linux摄像头传感器数据处理全景视野:从板端编码视频到高级应用(二)
ARM Linux摄像头传感器数据处理全景视野:从板端编码视频到高级应用
131 1
|
4月前
|
测试技术 开发工具 Python
在Jetson Nano上编译 pyrealsense2库包,并在Intel的tof相机上进行测试
在Jetson Nano上编译 pyrealsense2库包,并在Intel的tof相机上进行测试
205 0
|
5月前
|
异构计算
FPGA强化(8):HDMI显示器驱动
FPGA入门(8):VGA显示器驱动
48 0
|
7月前
|
机器学习/深度学习 人工智能 并行计算
英伟达禁止其他硬件平台运行 CUDA 软件
【2月更文挑战第16天】英伟达禁止其他硬件平台运行 CUDA 软件
122 12
英伟达禁止其他硬件平台运行 CUDA 软件
|
7月前
|
传感器 存储 编解码
ARM Linux摄像头传感器数据处理全景视野:从板端编码视频到高级应用(三)
ARM Linux摄像头传感器数据处理全景视野:从板端编码视频到高级应用
197 2
|
7月前
|
并行计算 API C++
GPU 硬件与 CUDA 程序开发工具
GPU 硬件与 CUDA 程序开发工具
149 0
|
传感器 芯片 Python
【HaaS Python硬件积木】ULN2003A步进电机驱动
【HaaS Python硬件积木】ULN2003A步进电机驱动
251 0
|
存储 异构计算 内存技术

热门文章

最新文章