基于等倾干涉与图像处理算法的流体折射率测量传感系统

发布时间:2024-01-25 20:59:17   来源:江南体育官方网站

  结合等腰劈的等倾干涉原理和CMOS图像传感器技术,设计了一种可测量流体折射率的改进的传感系统,提出了一种新型的图像处理算法,用于等倾干涉图像的特征提取。该系统使用CMOS图像传感器将携带有用信息的光信号转换成电信号,经过一块FPGA芯片采集数字图像,进行数据处理,进而计算出折射率。本文分别使用Matlab和Verilog成功实现了算法,并且进行了一系列模拟测试与性能评估。模拟测试数据表明该传感器系统理论测量精度较高,可应用于流体和其他透明材料折射率的测量。

  折射率是光学材料的基本信息参数之一,在科学研究和工业应用中具备极其重大作用,例如在大气测量、材料研究、环境监视测定和生化研究等领域,折射率的高精度测量都有着举足轻重的作用。目前对于流体折射率测量的方法种类非常之多,一类是几何光学法,依据反射折射定律,其中以分光仪法和阿贝折射仪法为代表[1];另一类是波动光学法,其又分为干涉法和偏振法。近年来,得益于光学传感器技术和计算机计算能力的提升,高精度、自动化测量已触手可及。随着光刻物镜、红外光学系统、光纤通信、医药、新材料等技术的持续不断的发展,传统的折射率测量技术需要大量的光学仪器,实现便携式小型化较难,已经难以满足规定的要求[2]。所以针对性研究出适配新需求的折射率测量方法,优化提升测量精度,乃是测量技术的重要研究方向。

  针对以上问题,参考以往对微位移测距系统[3-5]进行的研究,本文提出基于等腰劈等倾干涉和CMOS图像传感器的流体折射率的新型测量传感系统,并进行了相应的研究和仿真。该系统使用等倾干涉装置输出携带着光程差信息(从而携带流体折射率信息)的光信号,通过CMOS传感器采集信号进行光电转换,并使用Matlab和Verilog实现算法,进行一系列模拟仿真测试、误差分析以及性能评估。我们比较分析了等腰劈与矩形腔等倾干涉原理及通常的平行膜等倾干涉结构[6-10],选择了等腰劈干涉结构作为系统的光学传感装置,因其不仅发生多光束等倾干涉,且能产生足够多的完整的精细干涉圆环,并具有结构相对比较简单、封闭而不受环境干扰的优点,因而可实现对各类型流体折射率的精密测量。使用CMOS传感器和FPGA进行光信号的采集和处理,可实现数据的实时处理和远程传输,即用图像传感器代替肉眼观察,再用数字图像处理技术从图像中提取人们需要的数据。因为等倾干涉干涉条纹清晰细锐,条纹随着光程差(从而折射率)的变化而变化,非常敏感,所以通过条纹特征,进行折射率测量与计算,精度较高,本文结合光学原理推导出折射率计算公式,从而测算出流体折射率。

  (1) 等腰劈等倾干涉装置用于生成图像部分:等腰劈发生等倾干涉时,生成干涉条纹,流体的折射率的变化导致环纹产生明暗、位置与间隔的变化,进而得到携带光强和光程差信息的光信号。

  (2) 光电转换图像采集部分:CMOS图像传感器模块,此模块基本功能是CMOS图像传感器接收携带光程差信息(从而携带流体折射率信息)的光信号,进行光电转换,得到离散的电信号并将其转化为数字图像数据,以便进行后续处理[11-13]。

  (3) FPGA控制电路部分:FPGA作为主控芯片,进行CMOS图像传感器的驱动以及数据采集处理和传输工作。FPGA前半部分驱动CMOS图像传感器进行工作,接收来自传感器的电信号并做处理,后半部分的RAM用于暂存数据图像,ROM用于存储预设数据。

  (4) 显示模块:能够最终靠FPGA设计通信电路例如串口电路,将数据传输给显示模块。可将计算机作为后续的处理工具和最终的显示模块,也可以直接接入显示屏。

  图2是干涉装置的俯视图,ABC是一个由各向同性均匀介质n2构成的直角型等腰劈,盛装于同样构型的玻璃腔内,透明玻璃器壁厚度均匀,不影响干涉图像的分布规律(图中未显示厚度)。前后两个界面可以分别设置待测流体的出入口与阀门。AB与AC是等腰劈内外介质的分界面,其中,等腰劈的边长AB=AC=a;内外介质的折射率分别为n2,n1,当真空波长为λ的单色平行光束I以任意但适当的入射角i0,当它在AC界面的高线左侧任意位置P点以任意但合适的入射角i0射入腔内时,会在AC界面发生光的反射,即向等腰劈外反射得到反射线I′,也会发生光的透射,并向等腰劈内部透射,折射线又沿每一侧面顺次反射,然后就形成了一系列的等腰劈内的反射回路。如图2中的光传播路线…,同样在AB界面既可发生光的反射又可发生光的折射。利用全反射定律,使反射回路在等腰劈的界面BC上发生全反射,因此要求光线在棱镜内的BC界面满足全反射条件。在界面AC、AB时发生的不是全反射,所以还会伴随着向腔外折射。所以我们从图上能够正常的看到一部分光线I′在等腰劈外侧AC界面反射,一部分光线经折射而进入等腰劈内,并循环往复发生反射、折射,最后在等腰劈界面AC外侧得到反射光线,…},而在等腰劈界面AB外侧得到折射光线为等腰劈等倾干涉条纹分布规律的光路图[7]。

  具体的等倾干涉理论详见第一作者发表的文献[7],这里直接给出如下重要结论:无论是反射光束集合,还是透射光束集合,其相邻的两束出射光的表观相位差δ均为

  而对于透射线,…},按能量守恒It+Ir=I0,可得透射光场强It的分布公式为

  显然当透射光场强(3)极大(小)时,必致反射光场强极小(大),由式(1-3),当折射角i满足cosδ=1,即当

  透射光干涉场强(3)为第k级极大,即(It)max=I0,此时相应的反射光干涉场强式(2)为第k级极小。当折射角i满足cosδ=-1,即当

  此时相应的反射光干涉场强(2)为第k级极大。又根据等倾干涉的条纹规律易证,对于同一波长的入射光经过等腰劈等倾干涉装置输出的光谱,其相邻两级干涉条纹直径的平方差是一个与干涉序无关的常量[7]

  其中a为直角型等腰劈横截面一腰之长,f为凸透镜的焦距,Dk为第k级等倾干涉圆环的直径[7]。根据以上理论分析,直角型等腰劈等倾干涉装置产生圆环干涉条纹,流体折射率的微小变化造成相位差公式(1)的变化,进而导致干涉圆环产生扩张/收缩和明暗变化,最后得到携带光强(亮度)及相位差信息的光信号,经过CMOS图像传感器光电转换处理后,再转换为数字图像灰度变化,经过计算、比较,从而测算出流体折射率。

  目前,在图像传感领域,CMOS图像传感器已成为业界主流,其以体积小、功耗低、易于集成、成本低廉、读取速度快、带宽较低、噪声小、访问灵活性高及成像质量好等优点广泛取代CCD等图像传感器[12-15]。为满足设计的基本要求,本文选用的是OV7670,它体积小、工作电压低,提供单片VGA摄像头和影像处理器的所有功能,用它可以完全控制图像质量、数据格式和传输方式。OV7670图像传感器应用独有的传感器技术提高图像质量,得到清晰的稳定的彩色图像。

  对于等倾干涉圆环的数字图像处理早有先例,但大部分处理步骤复杂,处理速度偏慢,难以满足实时追踪折射率的需求。本文提出了一种全新的基于圆面积的半径提取算法,步骤简单,处理速度快,能够很好的满足实时追踪折射率的要求。对于数字图像来说,实心圆面积即圆所占的像素数目,通过对实心圆所占的像素计数,便能精确得出实心圆的半径。

  对于固定像素分辨率的图像传感器,需要预先生成一个索引顺序表来方便后续对其采集的图像做处理。以图像正中央像素点为原点,水平、垂直方向为X、Y轴建立坐标系,然后遍历第一象限(包含X正半轴)的所有像素点。计算出各个像素点到原点的距离平方值,如图4所示,方格内数字为对应像素到图像正中央即原点的距离平方值。然后按顺序存储距离平方值与相应的坐标值,如表1所示。

  本文的图像传感器实际使用部分为1024×1024像素,每一像素亮度位数为10位,则每一帧图像大小接近1兆字节,折合约10Mbit。如果直接处理,所需的计算量及存储空间极为庞大,故本算法对图像进行量化处理,将10bit的图像信息量化为1bit的明暗二值信息。既能节省存储空间,又会简化后续计算过程。因预生成表内的索引顺序是相对于圆心的距离,所以要先找到同心圆环的圆心。对于明暗二值化的图像,只需对亮点的x,y坐标分别作一次累加,再除以总像素点数目即可得到几何中心的坐标。

  计算条纹中心是一个搜索决策过程。首先依据预生成的索引顺序表,依次取出坐标值和偏移距离平方值,坐标值用于决定索引的像素位置,偏移距离平方值用于计算结果。索引顺序表的坐标值是以几何中心为原点存储的,故将坐标值以偏移量形式同几何中心坐标进行运算得出对应像素的地址,索引其亮度信息。

  对于量化后的干涉图像,按由内而外顺序扫描时,亮度信息总体呈由明至暗再由暗至明的周期性变化趋势。为保证扫描时对暗环或明环判定的准确性,本算法参照了数字电路中施密特触发器的工作原理。施密特触发器有两个稳定状态,其状态由输入信号电位维持;对于负向递减和正向递增两种不同方向变化的输入信号,施密特触发器有不同的阈值电压。本算法使用滑动窗口内的明暗像素数目来作为施密特触发器的输入,施密特触发器的状态由寄存器中表征亮或暗的比特的数目来维持。滑动窗口是一定长度的数据寄存器,每个周期它会左移一位并将接收到对应的亮度信息存放在最低位,以此来实现在顺序数据流上“滑动”。本算法内使用的是32位长度的寄存器,每个周期它内部存放的数据都是接近32个像素的明暗信息。本算法中施密特触发器的阈值电压为输入像素数目的3/4、1/4。滑动窗口寄存器中表示明(或暗)的比特数目从超过3/4减少到1/4会导致施密特触发器状态由正跳转到负,检测为暗环纹(或明环纹)的内边界,滑动窗口寄存器内表示明(或暗)的比特数目从1/4增加到3/4会导致施密特触发器状态由负跳转到正,检测为暗环纹(或明环纹)的外边界,其他情形触发器状态将维持不变。通过检验测试触发器状态跳变,记录对应位置的半径平方值即可得出内外边界的半径,取平均值即为环的中心半径值。

  由于折射率与暗环(或明环)的直径的平方差间隔呈现为线性关系,因此偏移距离预排序表需要存储距离的平方值,最后可以直接得出的是各个级次的距离平方值,乘上比例因子即可得出折射率n2

  式中使用逐差法来得出直径平方差间隔(ΔD)2,比例因子与等腰劈等倾干涉装置和CMOS图像传感器的相对位置、器件几何参数等因素相关,因此在实际应用时应该要依据装置进行校正,能够最终靠测量已知折射率的液体或气体来进行修正和率定,以得出比例因子。因为等倾干涉为多光束干涉,其干涉条纹细锐,明暗对比度高,所以测量的灵敏度和精度较高。

  本文利用Matlab进行系统模块设计及仿真,模拟生成测试数据,在模拟干涉场光强分布时做了简化处理,生成的是理想的、经过1bit量化处理后的二维图像数组。假设等腰劈等倾干涉实验中可以观察到连续7个明暗相间的清晰圆环,图像模拟生成脚本可生成至多6个暗环的图像。图5所示为一张1024×1024大小的量化图像,包含6个宽度不等的暗环。最后将图像数据以mat文件格式保存并传递给后续程序。

  条件1是要求点位于第一象限或者x正半轴上,如此设定可以使该查找表被复用且能正好覆盖整个图像,不会造成数据丢失或者重复计算。条件2则是删除了不会用到的点,对于等腰劈等倾干涉图像,其为有限组同心圆环,故测量时实际有效部分为圆形区域,对于正方形的图像而言,边角部分的数据是无效的,即使圆环半径过大,超出正方形最大内切圆部分的数据也是有较大误差和不可控的,故应舍去;而过小的圆环也会导致偏大的测量误差,故预排序表起点是在半径为30的圆上,而终止于半径为511的圆。在实际应用过程中,起点半径可以随实际装置和测量范围要求做调整,终止半径则是正方形图像边长的一半。

  为了保证能依据距离平方值对坐标进行排序,本文使用了一定编码技巧。首先是对坐标进行顺序遍历,使坐标(x,y)的距离平方值对应的数组序号i满足如下关系

  而在Matlab中,因为循环变量的起点不能为0,故循环变量会比相应的坐标大1,则实际公式修正为

  这样在使用Matlab的快排函数sort对数组排序时一并输出对原数组序号的排序,再通过除法取整和取余操作即可得出坐标关于距离平方值的排序,最后以mat格式将数据保存供后续程序调用。因为在Matlab测试时仅作可行性验证及测试,故在生成预排序表时并未要求满足条件2。条件2是为了在FPGA上做存储空间优化而设定的,在生成Quartus数据mif文件时使用。使用条件二可以将数据长度由261632条精简为约205000条,即减少了约22%的存储空间。表2显示了半径150~400像素,间隔50的6种不同大小的暗环在宽度为2~30像素7种情形下的计算结果。

  输入量化模块采用的是流水线操作,该模块负责将顺序输入的8位灰度图像数据流量化为1bit的明暗二值信息输出,在量化完一帧图像后,输出平均亮度和几何中心坐标。本工程适配的是1024×1024大小,8位的图像传感器,在输入流水线位的寄存器,使对每一个输入数据来进行累加,数据输入完成后,取其高8位即是平均亮度;几何中心坐标的计算则是根据量化后的数据对亮点的x坐标和y坐标分别进行累加,结果存放在两个30位的寄存器中,数据完成后输出其高10位。本文将计算平均亮度和量化两条流水线合并了,单次测量时连续读取两帧图像,第一帧计算平均亮度,第二帧用于计算折射率;在连续的测量情形下,相邻两帧图像的平均亮度相差不大,每一帧图像的量化阈值采用前一帧的平均亮度。虽然单次处理在速度上并没有加快,但连续测量的速度有明显提升,并且省去了原始图像所需的存储空间。至于信号衰减对测量的影响,本算法采用平均亮度做阈值后二值化,所以在信号有所衰减以后一般也能正常提取。这种算法只需要得到相邻干涉圆环的平方差,所以能正常提取到干涉圆环就行了,此外,本算法的窗口采样有一定的抗干扰能力。

  量化数据存储模块由一个地址MUX和2块512k×1bit的RAM及部分组合逻辑电路构成。地址MUX则是用于切换写RAM地址和读RAM地址。实际应用时RAM芯片需要外接,该模块需要修改成为数据收发和驱动模块,如果流片则可以以SoC形式集成在处理芯片内部。

  施密特触发模块是负责提取边界,计算折射率的核心模块,内部由三个模块构成,内部框图见图6。Syn_counter模块用于实现滑动窗口及计数,并实现施密特触发功能,最终表征边界的状态信号。移位寄存器用以实现滑动窗口,作为组合逻辑的5级加法树可以实时输出移位寄存器中1的数目。实际上能够正常的使用寄存器串来实现实时统计1的个数,以本模块为例,使用32个寄存器依次记录最近32,31,…,2,1个像素明暗信息,每个周期这些寄存器内的数据都更新为前一个寄存器内的值并加上最新的值,不过这需要31个加法器和32个寄存器,5级加法数也只需要31个加法器,故而在减少资源耗费上更有优势,但在速度上略有不如。off_addr模块是只读存储器(ROM)模块,内部存放了预排序的XY坐标偏移量。

  而determination模块则根据syn_counter的输出状态计算相应级次的半径平方值,并在搜索终止后计算出平方间隔。本设计使用预排序XY坐标偏移量的地址数据。地址数据等效于该点所在圆的面积,因此它是距离平方值的π倍,这就节省了预存距离平方表的204k×20bit的空间。对于平方间隔,是对6个圆环数据按逐差法计算,最终数值应为线π倍,因为最终将依据实际装置设定修正因子,故不进行除法来获得真实的平方间隔,而是合并到计算折射率中,如此只需一次乘法。

  整个工程的综合结果如表3所示,一共使用了392个ALMs,431个寄存器,1个DSP,存储空间占用约4Mbit,以及1Mbit的RAM,资源需求量少,主要是由于设计算法时控制参数尽量满足二进制对齐,这样在实现算法时大量使用移位代替乘除,节约了资源。

  上式中π/4项是因为第二条流水线最多只会扫描整个图像的π/4(圆与正方形面积之比)。

  以130M工作频率计算,每秒能处理约69帧,考虑到适配的CMOS图像传感器最大支持48MHz的时钟频率,30帧每秒,该设计在计算性能上是绰绰有余的。当然CMOS图像传感器像素数增大n倍,所需的计算资源会增加约log2n倍,ROM空间增大nlog2n倍,RAM空间增大n倍,处理速度降低到1/n。但即使是1600万像素,以此推断仍能达到每秒4帧的处理速度。

  本文利用多光束等倾干涉技术的优点[6-10],提出一种基于等倾干涉及其干涉条纹图像处理的新型算法和CMOS图像传感器的流体折射率测量传感系统的设计:基于等腰劈等倾干涉结构,将携带相位差(从而流体折射率)信息的干涉场光强(亮度)信息,利用CMOS图像传感器采集光强信号,进行光电转换,并对得到的数据来进行计算处理,最终实现对折射率的测算。基于文中所给折射率计算公式,本算法在Matlab上测试结果良好,符合预期;在Quartus上的仿真综合验证了算法的可行性与实用性。但需要指出的是,本设计中仍有需要优化完善与深入细化的地方。在算法理论方面,算法还需要精确数学论证与严格误差分析;在Matlab测试方面,能够最终靠波动光学的方程,利用有限元分析,在Matlab中进行等腰劈的光学仿真来得出更为详细真实的测试图像;在Verilog程序中,预生成表还有进一步压缩空间,比如再依据对角镜像操作,将预生成表再压缩一半;实际Verilog工程中参数也应以参数配置表形式控制,数据接口也应规范化处理,使用高层次综合或许有望简化硬件设计,降低设计难度,加快设计流程。总之本设计仍要进一步实践检验。

  [1]汪晓春,杨博文,何冬慧.一种基于迈克尔逊干涉仪测量透明液体折射率的方法[J].光学仪器,2012,34(5):1-4.

  [2]张静. 迈克尔逊等倾干涉法晶体折射率测量方法研究[D].山东大学,2009.

  [3]周国全,张斯磊.基于等倾干涉的二维微位移光学传感测距系统[J].武汉大学学报(理学版),2010,56(5):609-613.

  [5]周国全,周一博.基于CMOS图像传感技术和等倾干涉的改进的二维微位移传感系统[J].武汉大学学报(工学版),2017,50(2):301-306.

  基金项目: 高校物理教指委电动力学教学研究项目(JZW-16-DD-15)。

  通讯作者: 周国全,男,武汉大学副教授,现从事电磁场与光电子技术、非线性方程与孤子理论方向的研究,/p>

  引文格式: 周国全,段玉婕,朱增旺. 基于等倾干涉与图像处理算法的流体折射率测量传感系统[J]. 物理与工程,2021,31(6):17-24.

  吴国祯教授:我的国外研究生经历印象——应清华大学物理系“基科班20年·学堂班10年纪念活动”而写

  《物理与工程》期刊是专注于物理教育教学研究的学术期刊,是中国科技核心期刊,1981年创刊,欢迎踊跃投稿,期刊投审稿采编平台:

LX-43AC  ComExpress龙芯3A2000主板模块LX-43AC  ComExpress龙芯3A2000主板模块