为 NVIDIA Jetson 和其他嵌入式系统选择合适的摄像头
摄像头模块是基于 AI 的嵌入式系统中最不可或缺的部分。市面上可供选择的摄像头模块多到令人难以抉择。本文将对这一过程进行详解,帮助您为包括 NVIDIA Jetson 在内的嵌入式应用做出正确的选择。
选择摄像头的注意事项
选择摄像头模块需要考虑三个关键方面:传感器、接口(连接器)和光学器件。
传感器
电子图像传感器分为两大类:电荷耦合器件(CCD)和有源像素传感器(CMOS)。CCD 传感器只能按行读取像素值,每行像素逐一移位到读出寄存器中。CMOS 传感器则可以单独并行读取每个像素。
在大多数情况下,CMOS 的成本和能耗更低,而且不影响图像质量。由于可以并行读取像素值,CMOS 还能实现更高的帧率。不过在某些特殊领域,CCD 传感器仍占主导地位,比如像天文学这种需要长时间曝光和极低噪点图像的领域。
电子快门
电子快门有全局快门和滚动快门这两个选项。全局快门将每个像素同时曝光在入射光下。滚动快门按一定顺序(例如从上到下)对像素行进行曝光,这可能会导致失真(图 1)。
图 1. 滚动快门导致螺旋桨叶片失真
全局快门不会受到物体移动造成的运动模糊和失真影响。由于曝光开始的时间点只有一个,使用全局快门更容易同步多台摄像机。不过,使用全局快门的传感器要比使用滚动快门的传感器昂贵得多。
彩色或单色
在大多数情况下,单色图像传感器足以胜任典型的机器视觉任务,比如故障检测、存在监测和记录测量等。
在单色传感器中,每个像素通常用 8 个 bits 来描述。而在彩色传感器中,每个像素由 8 bits 红色,8 bits 绿色和 8 bits 蓝色组成。彩色传感器需要处理的数据量是单色传感器的三倍,因此处理时间较长,帧率也较慢。
动态范围
动态范围是传感器获取的最大和最小信号之间的比率。在上限值,像素在较高的强度值(饱和度)下呈现白色;在下限值及以下,像素呈现黑色。室内应用需要至少 80 分贝的 HDR,室外应用则需要最高 140 分贝的 HDR。
分辨率
分辨率是传感器再现物体细节的能力。它受到多种因素的影响,如所使用的照明类型、传感器像素大小和光学器件的性能等。物体的细节越小,所需的分辨率就越高。
像素分辨率是指图像上每个像素等于多少毫米。分辨率越高,图像就越清晰。摄像头或传感器的分辨率应能覆盖至少两个像素的特征区域。
高分辨率的 CMOS 传感器往往帧率较低。即便传感器可以达到您所需要的分辨率,如果不能达到足够的每秒帧数,就无法捕捉到所需要的高质量图像。因此,评估传感器的速度非常重要。
确定用例所需分辨率的一般经验法则如图 2 所示。 乘数“2”表示通常希望物体上至少有两个像素,以便成功检测到物体。
图 2. 所需的传感器分辨率
取决于镜头视场和目标特征的大小
例如,假设有一张拳击手眼睛周围受伤的图像。
分辨率= 2×(2000/4)
视场角(毫米) = 2000 毫米
目标特征(眼睛)的大小(毫米)= 4 毫米
根据 1000 x 1000 的计算结果,100 万像素摄像头使用 CV 或 AI 算法应该足以检测到眼睛。
请注意,传感器是由多行像素组成的。这些像素也称为“光子”。像素收集到的光子数量与像素大小成正比。选择较大的像素看似诱人,但并非在所有情况下都是最佳选择。
表 1. 小像素和大像素的优缺点
背照式传感器可最大程度地提高每个光电二极管捕捉和转换的光量。在前照式传感器中,光电二极管上方的金属线会阻挡一些光子,从而减少捕捉到的光量。
图 3. 前照式结构(左)
和后照式结构(右)的截面图
帧率和快门速度
帧率是指每秒拍摄的帧数(或捕捉的图像)(FPS)。帧率应根据每秒所需的检测次数来确定。这与快门速度(或曝光时间)相关,快门速度是摄像头传感器为捕捉图像而曝光的时间。
理论上,最大帧率等于曝光时间的倒数。但由于帧读取、传感器分辨率和包括电缆在内的接口数据传输速率所带来的延迟,可实现的 FPS 将会较低于这个值。
通过增加额外的照明和对像素进行分档,可以减少对大量曝光时间的需求,从而提高 FPS。
CMOS 传感器读取每个像素的过程比 CCD 传感器移位寄存器中的电荷传输更快,因此可以实现更高的 FPS。
接口
有多种方法可以将摄像头模块连接到嵌入式系统。通常情况下,为了进行评估,会使用带有 USB 和以太网接口的摄像机,因为这样就不需要自定义驱动程序的开发。
选择接口时的其他重要参数包括传输长度、数据传输速率和工作条件。表 2 列出了最常用的接口。每种接口都各有利弊。
表 2. 各摄像头接口比较
光学器件
光学镜头的基本作用是收集物体的散射光,并在光敏图像传感器(CCD 或 CMOS)上再现物体的图像。在选择优化镜头时应考虑以下因素:焦距、传感器格式、视野、光圈、主光线角、分辨能力和畸变。
镜头有固定的几种标准焦距。常见的镜头焦距包括 6 毫米、8 毫米、12.5 毫米、25 毫米和 50 毫米。
在选择了焦距最接近成像系统所需焦距的镜头后,就需要调整工作距离,使被测物对焦。短焦距镜头(小于 12 毫米)产生的图像畸变较大。
如果您的应用对图像畸变敏感,请尝试增加工作距离并使用焦距较长的镜头。如果无法改变工作距离,那么在选择优化镜头时就会受到一定的限制。
表 3. 摄像机镜头的主要类型
将镜头安装到摄像机上时需要使用某种安装系统,必须确定机械稳定性(松动的镜头会产生失焦图像)以及与传感器的距离。
为确保不同镜头和摄像机之间的兼容性,我们定义了以下标准镜头卡口。
表 4. 嵌入式空间常用的镜头卡口
NVIDIA 摄像头模块合作伙伴
NVIDIA 与全球实力雄厚的摄像头模块制造商建立了一个丰富的合作生态圈。详情请查看 Jetson 合作伙伴支持的摄像头:https://developer.nvidia.com/embedded/jetson-partner-supported-cameras?t1_supported-jetson-products=Orin
这些合作伙伴可以帮助您,为 NVIDIA Jetson 应用完成从概念到生产的整个成像系统设计过程。
图 4. NVIDIA Jetson 加摄像头模块的组合
可满足各行各业的不同需求
总结
本文介绍了为嵌入式应用选择摄像头时需要考虑的最重要的特性。这个选择过程似乎十分艰巨,您首先要了解在设计、性能、环境和成本方面的主要限制。
在了解限制后,重点关注与用例最相关的特性。例如,如果摄像头将被部署在远离计算中心的地方或恶劣的环境中,应考虑使用 GMSL 接口;如果摄像头将在弱光条件下使用,应考虑像素和传感器尺寸较大的摄像头模块;如果要将摄像头用于运动应用,可考虑使用带全局快门的摄像头。