2615
{{thumb}}
0
一、什么是信噪比?
信噪比Signal-to-Noise Ratio(SNR)衡量的是所需信号相对于背景噪声(即非所需信号)的强度。信噪比是区分各种输出信号以实现高效输出的必要条件。信噪比通常用分贝表示。信噪比值越高,输出效果越好。因为在高信噪比输出中,有用信息(信号)比无用数据(噪声)多。例如,100 分贝的信噪比要好于 70 分贝。
二、如何计算信噪比?
信噪比的计算方法因设备而异。不过,如果信号值以分贝形式表示,那么信噪比的计算方法就是从所需的信号中减去噪声量。因此,信噪比= S-N,其中 S 是信号量,N 是噪声电平。
举例说明:假设您的设备接收的信号为 -50dBm(分贝/毫瓦),而噪声电平为 -70dBm。那么信噪比的计算公式为
SNR = -50-(-70) = 20dB
另一种计算信噪比的方法是取记录信号与总均值平方根噪声之间的线性比,如下式所示,这称为线性信噪比。
三、信噪比在嵌入式摄像机中的重要性
相机中的 SNR 表示图像中的信号质量。许多嵌入式视觉应用都需要高信噪比,尤其是那些涉及边缘处理的应用,在这些应用中,AI/ML 算法必须分析处理后的图像以做出智能决策。这是因为此类智能人工智能相机的图像输出需要为以下功能提供必要的细节,如人员计数(在监控系统中)、人口分析(在智能标牌中)、作物检测(在农业机器人、车辆和无人机中)、物体识别(在自主购物系统、机器人中)、样本分析(医疗显微镜、诊断设备)等。低照度相机模块也需要高信噪比,因为与在正常照明条件下工作的相机相比,低照度相机模块的噪声水平对图像质量的影响要大得多,也明显得多。
四、探索信噪比与其他相机特征之间的关系
信噪比与像素大小、传感器特性、镜头质量等其他相机特性相关。要获得最佳图像质量和更高的信噪比,了解这些相机特性之间的关系非常重要。让我们来看看各种相机特性是如何影响信噪比的。
(1)传感器尺寸: 较大的传感器通常能捕捉更多的光线,从而获得更高的信噪比。较大的传感器也意味着较大的像素,可以收集更多的光子,从而提高信噪比。相比之下,小像素可能更容易产生噪点,从而对信噪比产生负面影响。
(2)光圈大小: 光圈越大,光线进入越多,信噪比越高。较小的光圈可能需要更长的曝光时间,这会带来更多的噪点。有关信噪比和曝光如何相互影响的详细信息,请参阅以下章节--了解曝光时间如何影响信噪比
(3)ISO 感光度: 较高的 ISO 设置会放大信号,但同时也会放大噪点,从而可能降低信噪比。较低的 ISO 设置通常会产生较好的信噪比,但需要更多的光线才能正确曝光。
(4)图像处理算法: 先进的降噪算法可以在不影响图像细节的情况下减少不必要的噪点,从而提高信噪比。
(5)快门速度: 更快的快门速度可以减少运动模糊,但需要更大的光圈或更高的 ISO,从而影响信噪比。在光线不足的条件下,较慢的快门速度会因曝光时间增加而导致信噪比降低。有关信噪比和曝光如何相互影响的详细信息,请参阅以下章节--了解曝光时间如何影响信噪比
(6)动态范围: 具有良好动态范围的相机可以捕捉广泛的色调,从而提高高光和阴影部分的信噪比。动态范围有限可能会导致亮部或暗部细节丢失。
五、了解曝光时间如何影响信噪比
信噪比与曝光时间之间关系的基本原理可以通过光子统计来理解。也就是说,信号(S)与曝光时间内收集到的光子数成正比,而光子数是光强(I)与曝光时间(t)的乘积。
在考虑入射光子强度时,光子拍摄噪声(光子拍摄噪声是以离散单位(即光子)计算光的任何系统中固有的一种噪声)也会出现。光子拍摄噪声造成的信噪比(SNR_Shot)为
曝光时间越长,收集到的光子数(N)也就越多,信号(S)也就越大。因此,信号的平方根 (√S) 也会增加。这意味着,在光斑噪声的情况下,信噪比会随着曝光时间的平方根而提高。
选择较长曝光时间的一个权衡因素是,曝光时间越长,收集到的光子数量就越多,因此噪点的信噪比也就越高。不过,较长的曝光时间也会增加引入电子噪声的可能性,并可能导致热噪声等问题。因此,应针对特定场景选择平衡这些因素的最佳曝光时间和相机设置。
六、提高嵌入式视觉设备信噪比的实用步骤
有时,为了实现高信噪比,人们倾向于最大限度地提高增益以改善信号强度。但这样做会导致信号和噪声同时激增。而且你会发现信噪比值并没有大的变化--这意味着你的成像输出可能会获得更好的对比度,但仍会面临同样的质量问题。因此,在高信噪比应用(如显微镜)中部署嵌入式摄像头时,需要遵循某些实际步骤,以确保输出质量更高(噪点更少)。因此,我们需要以正确的架构设计来制造/定制/部署摄像头,并使用高质量的传感器。此外,通过适当散热来降低传感器的温度也会有所帮助。低噪声相机配有低读取噪声图像传感器。但在大多数情况下,您还需要确保主动散热。这将有助于管理图像传感器中的其他噪声源。不过,这可能会增加解决方案的总体成本。
{{CommentDatavv.name+' '+(CommentDatavv.to_user_id!=CommentDatav.user_id?('回复'+CommentDatavv.to_name):'')}}: