C#,索尼偏光相机(Polarization Camera)传感器IMX250和专用SDK简介

以下文字用百度翻译,效果一般,凑合看吧。

C#,索尼偏光相机(Polarization Camera)传感器IMX250和专用SDK简介_第1张图片

2018年12月开始上市的索尼偏光相机和偏光相机专用SDK实现了高功能、高画质、高速处理。其要点在于,开发为不在需要专业知识的偏振信号处理的安装中花费工时,能够以最小限度的成本利用的SDK。在此基础上,为了充分发挥最近的PC性能,在数值处理中活用GPU,从而实现了全分辨率、全帧速率下的偏振处理。本文以SDK的功能和特点为中心进行说明。

1 索尼偏光相机传感器IMX250

1.1 偏振传感器的原理

自1690年由惠更斯(克里斯蒂安·惠更斯(Christiaan Huyg(h)ens,1629年04月14日—1695年07月08日)荷兰物理学家、天文学家、数学家,1629年4月14日生于海牙,1695年7月8日卒于海牙。他是介于伽利略与牛顿之间一位重要的物理学先驱,是历史上最著名的物理学家之一,他对力学的发展和光学的研究都有杰出的贡献,在数学和天文学方面也有卓越的成就,是近代自然科学的一位重要开拓者。他建立向心力定律,提出动量守恒原理,并改进了计时器。)发现以来,已经在300多年的各个领域中研究和利用了偏振这种物理现象。在照相机的领域中,在摄影时安装偏光滤光器,抑制拍摄到水面和玻璃上的反射。在工业用途中,制造时的检查时照入的光的反射因异物、伤痕、污垢等的确认而成为障碍,为了减少反射而使用偏光滤光器。

目前,在工业用相机领域备受关注的是“偏光相机”。索尼半导体解决方案于2018年9月开始批量生产搭载偏振技术“Polarsens”的偏振图像传感器IMX250(图1、2、3)。同年12月在横滨举办的国际图像机器展上,10多家公司展示了“偏光相机”,切身感受到了到场者的高度关注。

C#,索尼偏光相机(Polarization Camera)传感器IMX250和专用SDK简介_第2张图片

图1 偏振传感器的原理

索尼开发的偏光相机有510M像素、GiGE接口的机器视觉相机XCG-CP510以及作为专用SDK的XPL-SDKW(Windows版),从同年12月开始上市。

1.2 从偏光滤光器到偏光照相机

如开头所述,偏振滤光器(也称为PL滤光器)是有用的附件,以减少在民用照相机拍摄风景等时成为障碍的光的反射。为了减少反射,需要使过滤器旋转,确定最有效果的角度的作业,由于根据太阳的位置和与被摄体的角度设定的过滤器的角度变化,所以每次都需要调整。

C#,索尼偏光相机(Polarization Camera)传感器IMX250和专用SDK简介_第3张图片

在风景摄影等时间充裕的摄影中,偏振滤光器的调整所需的时间不会成为大的问题,但是在制造线上的产品检查那样的现场每次进行调整是不现实的。事先决定照明和被摄体的位置关系、过滤器的角度,以不需要按产品固体进行调整的方式,在一定环境下调整摄影条件是很重要的。

另外,以往通过偏光滤光器通过目视确认伤痕和污垢,但由于开源的图像识别处理软件的出现,能够比以前更容易地将图像识别技术组装到软件中,推进确认作业的自动化。通过滤波器拍摄的图像是包括滤波器状态在内的静态信息,不能从后面进行滤波器角度的调整,因此偏振滤波器的设置变得更重要。

在除反射去除以外的用途中,到目前为止,为了求出偏振度,需要改变偏振滤光器的角度进行多次摄影,或者设置多台设备,存在产生摄影的工夫和视差等精度方面的问题。

与此相对,偏振照相机的大的特征在于,通过搭载4方向的偏振镜并与后级的信号处理组合,能够通过一次拍摄来计算任意角度的偏振滤波器的状态。由于在拍摄的图像中保存有4个方向的偏振器的信息,所以能够从该图像再次计算并求出任意角度的滤波状态,也能够在拍摄后离线确认。

1.3 技术名词

1.3.1 偏振度

偏振度是计算被摄体的偏振程度的功能,表示越是被显示为白色的部位越偏振。即使像捆扎的电源线那样对比度低、在图像中破碎而难以视觉辨认的被摄体、或由于与背景相同颜色而难以由照相机识别的物体,也能够通过求出偏振度来确认物体的形状。

C#,索尼偏光相机(Polarization Camera)传感器IMX250和专用SDK简介_第4张图片

偏光度(DoP)

C#,索尼偏光相机(Polarization Camera)传感器IMX250和专用SDK简介_第5张图片

1.3.2 法矢(曲面法线)

能够根据偏振光信息计算被摄体的面的法线,在SDK中提供了对被摄体按每个像素计算面法线的功能。另外,还提供了对求出的面法线进行彩色化显示的功能,能够用颜色来表现面的朝向的不同。

C#,索尼偏光相机(Polarization Camera)传感器IMX250和专用SDK简介_第6张图片

该功能也与偏振度相同,通过在照相机难以识别的同系色的物体(图4)中使用,能够容易地观察面的朝向而立体地显示(图6),因此能够用于3D测量和形状识别。

C#,索尼偏光相机(Polarization Camera)传感器IMX250和专用SDK简介_第7张图片

1.3.3 应力

施加在物体内部的力称为应力。应力是从外部施加力时产生的,即使在除去外力后也会残留在物体内(残余应力)。根据应力产生时的应变的大小和方向,将双折射的大小和方向变化的物质称为光弹性体。当偏振光照射到透明、半透明的光弹性体时,由于应变的大小,双折射的偏振光产生相位差。通过对其进行观测,可以确认施加在物体上的应力的大小,在样品查看器中用颜色视觉化显示观测到的相位差。图7是在丙烯酸板的右侧侧面夹入金属棒,从左右以万力施加压力的图。虽然人眼看不懂,但如图所示观测应力时,可知金属为支点,在丙烯酸板上施加了应力。

1.3.4 反射消除/增强/提取

具有当无偏振光在被摄体的表面反射时根据其角度进行偏振的性质,在偏振滤波器中,通过遮断该特定方向的偏振,能够除去(Cancel)反射光。

C#,索尼偏光相机(Polarization Camera)传感器IMX250和专用SDK简介_第8张图片

虽然在偏振滤光器中只是除去,但是在偏振照相机中,通过SDK的数值计算处理,也可以仅提取(提取)反射光的强调(增强)显示和反射成分。

C#,索尼偏光相机(Polarization Camera)传感器IMX250和专用SDK简介_第9张图片

作为反射除去的优点,可以举出通过除去车的挡风玻璃或水面等的拍摄部分来提高视认性。另外,反射强调对于像玻璃那样透射率高的物体,通过强调反射成分,能够确定通常的照相机难以确定的位置和形状。

偏振照相机SDK准备了Manual和Auto两种反射除去功能,根据用途可以选择最佳的除去方法。

(1)Manual:可以通过手动指定反射面的角度来除去本来不是Brewster角就不能完全除去的反射;

(2)Auto:以各像素为单位求出被摄体的偏振光(反射成分),能够自动降低。

C#,索尼偏光相机(Polarization Camera)传感器IMX250和专用SDK简介_第10张图片

1.3.5 斯托克斯向量(Stokes Vectors)

斯托克斯矢量是指由被称为斯托克斯参数4分量#0、#1、#2、#3构成,用于表现偏振状态的列矢量

用=(0、1、2、3)t表示。每个斯托克斯参数用可测量光的“强度”来表示。通过定义光学元件的Mueller矩阵并对斯托克斯矢量进行矩阵计算,可以知道通过光学元件后的光的状态变化(′=)。

可以从SDK获得斯托克斯向量,并且可以在样本查看器中显示斯托克斯参数的状态。3不能通过偏振图像传感器取得,因此SDK不处理。

C#,索尼偏光相机(Polarization Camera)传感器IMX250和专用SDK简介_第11张图片

0:光强度(第13图・画面左上)

1:水平线优越偏光成分(0°-90°成分)(第13图・画面左下)

2:45°直线优越偏光成分(45°-135°成分)(第13图・画面右下)

3:右旋圆优越偏光成分(右旋圆-左旋圆成分)

2 IMX250传感器 SDK

本节说明索尼的SDK(偏振算法除外)特有的特色功能。

2.1 通过去马赛克处理提高画质

偏振图像传感器具有通过一个镜头能够取得4个方向的偏振的优点,另一方面,由于根据4个方向的信息进行数值计算,所以存在各偏振方向的图像成为全部像素的1/4的分辨率的缺点。在XCG-CP510上搭载的偏振图像传感器IMX250的情况下,约507万的有效像素最大为虽然具有2464×2056的分辨率,但从偏振光的信息量的意义上来说,这是分辨率为1232×1028。

另外,偏振图像传感器的各方向的偏振片由于存在制造上的偏差,所以灵敏度有微妙的不同。当选择样本查看器的Raw输出并放大图像时,可以确认格子状的显示(图14),但这主要是由于偏振和灵敏度的偏差。结果,来自偏振图像传感器的信息与用人眼确认的影像产生差异,感觉被马赛克处理。

与此相对,本公司SDK在偏振算法的计算前,通过进行使各方向的像素的插补和空间方向的相位偏移一致的处理,进行将马赛克状的影像变换为接近目视的状态的“去马赛克”处理。通过优化了偏振片的排列的独自的去马赛克处理,能够复原为与偏振图像传感器的有效像素数相同的信息量,同时实现画质方面的提高。

C#,索尼偏光相机(Polarization Camera)传感器IMX250和专用SDK简介_第12张图片

2.2 FFC(Flat Field Correction)

如上所述,偏振图像传感器的元件在每个像素和偏振方向上存在灵敏度的偏差。另外,在使用镜头的照相机的情况下,存在周边部比图像的中央部暗的阴影的现象,为了修正这些,在SDK中安装了FFC这一功能。虽然相机机身也有阴影修正功能,但为了处理507万像素,机身的计算量很大,所以很难进行完全的修正。通过在计算资源中能够活用GPU(Graphics Processing Unit)的PC侧执行,实现了高质量的修正。

2.3 利用GPU实现高速处理

偏振算法需要对从照相机输出的图像的全部像素进行数值运算,即使是最新的CPU,实时处理全部图像也是现状困难的。为了仅由CPU处理,只能削减计算量,需要处理的图像尺寸的缩小、帧速率的剔除、或者偏振算法的简化。然而,根据偏振算法的应用,这些措施可能导致应用的限制,并且不符合SDK的形式。

近年来,搭载在PC上的GPU不仅进行图像处理,而且一般将高并行计算能力用于大规模的数值运算。偏振相机SDK的目标是实时偏振处理从偏振相机输出的图像,并且通过将GPU用于计算处理来实现高速处理。为了将GPU用于计算,以前每个GPU供应商或平台都有不同的手段(CUDA、AMD Stream、DirectCompute等),但现在通过使用OpenCL(由克洛诺斯组规定的标准规格),可以进行GPU运算而不依赖于GPU供应商。偏光相机SDK也使用OpenCL来实现偏光处理,如果是最近的Windows PC,在很多环境中都能感受到比CPU更快的处理。另外,在进行全分辨率、全帧速率的处理时,推荐使用NVIDIA GeForce GTX1070/1080等高性能GPU。

2.4 在线/离线支持

偏振相机SDK不仅可以在线(连接偏振相机的状态),还可以处理脱机(保存在文件中的状态)的原始图像。通过将Raw图像保存在文件中,日后读入该文件,能够再现所有的偏振处理,因此例如即使在想要通过反射除去选择最佳的角度的情况下,也能够花费时间进行确认。

C#,索尼偏光相机(Polarization Camera)传感器IMX250和专用SDK简介_第13张图片

2.5 开发语言

经过多年实践与大量的应用证实,除了C++/C#,其他语言(如python等)无法应付工业软件的开发,SONY IMX250偏振相机传感器的SDK 仅仅提供C++/C#两种语言的接口与说明文档。放弃C++/C#而去学习没有应用价值的python会为此浪费大量的事件并付出巨大的代价。

3 结束语

偏光相机有着各种各样的应用,拍摄对象也从像细胞一样小到像大地一样大,而且用途也涉及医疗、制造、交通、研究、宇宙、体育等多个方面,比笔者想象的更能活用的市场。

偏振的世界自古以来就为人所知,但随着偏振相机这一新技术的问世,新的活用方法被设计出来,会越来越广泛吧。希望索尼开发的相机和SDK能起到作用。

Polarsens和是索尼公司的商标。此外,本文中出现的系统名、产品名一般为各开发厂商的注册商标或商标。另外,在正文中®、没有标明TM标志。

C#,索尼偏光相机(Polarization Camera)传感器IMX250和专用SDK简介_第14张图片

你可能感兴趣的:(C#游戏编程,Game,Recipes,C#实用代码,Coding,Recipes,c#,计算机视觉,图像处理,开发语言)