摘 要:本文设计的智能折光仪以高性能、高效率的ARM系列芯片为处理核心,来设计整个测量仪器的硬件电路处理部分。采用Liunx底层下C++/C语言混合编程来设计测量仪器和图像处理算法的系统软件部分,使用QT设计制作人机交互界面方便远程操作仪器进行实时测量。研究结果表明该智能数显折光仪经测试能达到设计要求。
关键词:折光仪;CCD;面阵CCD;自动测量
0 引言
近年来随着科学技术的快速发展,用于浓度检测的折光仪的需求不断增加,智能数显折光仪的研究受到广泛关注。自动化、智能化的折光仪将成为一种趋势,通过测得物质的折射率来定性分析甚至于定量得到物质的其他相关物理量,这种原理方法已经广泛运用于各个领域[1]。例如蔗糖的糖度测量,饮料的浓度测量,各类固液或者油脂食品的成分鉴定和质量检测等。这种通过折射率的测量来标定的方法不仅广泛应用于制糖、食品、环保、石油、化工等领域,还在最近几年被迅速运用在镜片检测、珠宝鉴赏等行业,节省了大量的人力、物力、财力,其市场前景非常广阔。因此,对于智能数显折光仪的研究具有重大的理论意义与实际应用意义。但是,目前国内外的折光仪附带着一些仪器性能上的缺陷,例如折射率的测量范围变小,仪器设备的环境适应性变差,性价比增长不理想等。
基于以上局限,结合实际运用场合,本文所研究的智能折光仪系统拟在传统折光仪的光学测量结构后,改传统人工目视为CCD相机采集提取图像,通过精确采集图像、快速处理图像来提高折光仪的效率和智能化水平。
1 折光仪光学原理
1.1 测量方法的选择
本文所研究的智能折光仪系统选择几何光学测量法作为本设计设备的光学系统原理。本设计将选择全反射测量法,基于全反射测量法选择单色的发光二极管(或者激光光源)作为系统光源,选择高速的面阵CCD相机作为系统的图像采集器,加上微型计算机系统的高效图像处理技术来实现对液体和固体物质的折射率测量,最终达到对物质的浓度进行测量。

图1 光学结构原理图
Fig.1 Schematic diagram of optical structure

图2 光路结构原理图
Fig.2 Schematic diagram of optical path structure
1.2 整体结构原理分析
本文所研究的智能折光仪不仅可以测量液体物质的折射率,还可以测量固体物质的折射率。其光学测量系统的整体结构设计如图1所示,特定光源LED发出入射光,光束通过带小孔的光筒后投射到透镜上,将光束整形过滤。整形后的光束再通过支撑壳体上的过光孔,将光束打到棱镜的下斜面,光通过下斜面后反射到棱镜与待测物质的接触面(棱镜左平面),在接触面处光束会发生全反射[2]。全反射后的光束在棱镜的上斜面处再次发生折射,折射后的光束从棱镜的右平面射出,经过透光槽最终把光束投射到面阵CCD上。因为待测物质的折射率不同,则最终投射到CCD上的光束多少不同,在CCD采集的图像信息中会形成大小不同的亮区和暗区两个部分,通过测量亮区暗区的相对区域大小,计算出待测物质的折射率。该光学测量系统折射率测量范围为1.317~1.51346,最小临界角为49.6544°,最大临界角为61.1456°。
1.3 光路结构原理分析
本文所研究的智能折光仪的光路结构原理如图2所示。
特定单色光源1发出入射光线,光线通过透镜2整形过滤,整形过滤后的光束射入光学棱镜,在光学棱镜中光束发生反射后照射到待测量物质表面(以溶液为例),在溶液表面会发生全反射现象。因为不同溶液浓度的液体的折射率不同,光束通过溶液全反射后留下的光束宽度也不同,留下的光束再通过透镜3整形过滤,最后照射在光幕4上,通过对光幕4上的亮区暗区各自区域的宽度测量,然后计算出溶液的折射率。
根据光学路径和CCD相机采集的图像数据值可以由公式计算得到折射率:

其中,n为待测物的折射率;n1为棱镜本身的折射率,θ平均为光束平均临界角,f为透镜的焦距(f=f1+f2,f1是透镜在棱镜中的焦距即光锥高度,f2是透镜在空气中的焦距。),x为采集图像中亮区CCD宽度(其中x=m*b,m为亮区中像敏单元的个数,b为像敏元的中心间距尺寸)。所以由公式(1)可知待测量物质的折射率n是关于CCD采集图像的亮区宽度x的函数,只要通过计算机算法处理CCD采集的图像,找到亮区暗区分割线,计算出亮区暗区宽度数据,就能够计算得出折射率值和最后的浓度值。
2 系统硬件设计和选择
2.1 系统硬件组成
本设计的系统硬件主要由光学传感器,高速面阵CCD相机,ARM系列芯片处理核心,计算机处理软件和计算机等组成。来自光学传感器的光信号经过面阵CCD相机处理后变成相应的电信号,电信号传入ARM系统下位机进一步处理,处理好的数据结果经过上位机规格化后在其屏幕上输出。
2.2 硬件的选择
2.2.1 图像采集器的选择
图像采集器是光学系统后图像采集和图像数据处理系统的重要组成部分,图像采集器采集图像的准确性、清晰度、实时性直接关系到整个智能折光仪的性能。根据目前国内外的折光仪现状研究,图像采集器的选择主要是在COMS相机和CCD相机两者之间。本文选择使用噪声低,测量精度高,环境适应能力强,动态响应能力强的CCD相机作为图像采集器来采集图像信息,代替传统的人工目视采集。

图3 软件模块图
Fig.3 Software module diagram
本研究选择的SunWayU2H130型号的面阵CCD相机,其有效像素130万,广谱响应370 nm~1040nm.
2.2.2 处理核心的选择
处理核心是整个折光仪的运行、运算基础,在处理核心的选择上要充分考虑到面阵CCD相机的因素。因为本文所研究的智能折光仪需要实时测量,所以系统需要一个运算速度快,控制端口多,运算精度高,功耗相对较小,存储空间大等特点的处理核心。根据以上要求拟选择ARM系列的微型计算机作为整个系统的处理核心。
本研究选择的Samsung S3C6410的ARM11处理核心的内存为256M,ROM为1G。
2.3 LCD屏幕与蜂鸣器(警报)的选择
4.3 寸LCD屏幕选择FIT-LCD4.3的电阻液晶显示屏,其屏幕的分辨率为480×272,其适用的工作温度在-20℃~+70℃范围内。蜂鸣器(警报)选择ARM11的开发板上自带的蜂鸣器来作为本文所研究的智能折光仪的报警装置。设计的报警装置可以在实时测量的浓度值不在设定的规定范围时,或者软件程序运行出错等异常情况下发出警报。
2.4 光源选择
本文所研究的智能折光仪系统拟采用黄色LED灯作为光源。黄色LED灯发出的光线的单色性良好,单色性好的光线可以减少光线在光路中产生的色散,从而使整个光路设计可以变得简单一些,还可以提高最后CCD图像采集器所采集的图像的清晰度和准确度。
本研究选择钠光黄色LED灯作为系统光源,功率为0.5W,正向电压为3.4 V~3.8 V,工作温度为-20℃~70℃。
3 折光仪系统软件设计
3.1 编程环境选择
就本文所研究的智能折光仪而言,所需要的图形界面简单,运算处理能力要求高,更新换代速度要求实时等特点拟选择开源性好、风险低、内核结构完善、网络能力强、使用品质好、操作效率高、制作成本低的跨平台的Linux操作系统来作为下位机编程环境。

图4 霍夫变换前后和过程中的图像信息
Fig.4 Image information before and after the Hough transform
QT(Qt Creator)是一款基于C++语法的跨平台图形化编程开发环境软件。是一种以面对对象的思想为框架,使用各种宏和各种代码扩展的组件编程[3]。本研究拟选择支持跨平台的图形化设计编程环境的QT来作为上位机编程环境。
3.2 系统软件模块设计
本文所研究的智能折光仪系统所设计的软件模块如图3所示。
3.2.1 图像采集分析处理模块
本文所研究的智能折光仪及软件设计的图像采集部分设计和开发是基于Linux操作系统下的一个视屏设备的调用与采集。在Linux操作系统下使用V4L2来发现和操作视频设备,V4L2主要是用于设置图像的帧频、格式、参数等,其主要通过使用一系列的回调函数来实现这一系列功能[4]。首先,打开视频设备设置属性、采集方法,设置好后开始采集数据,采集的数据能对采集设备产生反馈,使设备采集到更实用、可靠的数据,数据采集完了以后,关闭整个设备。
本文所研究的智能折光仪软件系统需要的图像仅仅是亮区暗区和亮区暗区的分界面,需要利用OpenCV函数对采集到的图像进行裁剪预处理[5]。裁剪掉不需要的部分至保留有用的图像信息。OpenCV函数中利用ROI原理剪切裁剪图像采集器的图像。首先建立图像数据矩阵,然后表示出矩阵的Rect,接着通过设定的保留区域来定义ROI,从而实现图像的剪裁。
原始图像经过裁剪以后得到只包含亮区暗区图像信息的新图像,新图像需要经过Hough变换来找到其亮区暗区的分界面。本文所研究的智能折光仪软件系统所需的也就是通过霍夫线变换来找到裁剪后新图像的亮区暗区分界面[6]。霍夫变换前后和过程中的图像信息如图4所示。
3.2.2 折光率浓度计算、测量与报警模块
本文所研究的智能折光仪软件所设计的浓度计算编程流程如图5所示。

图5 浓度计算编程流程图
Fig.5 Programming flowchart for concentration calculation
把霍夫变换后得到的图像数据信息导入程序,根据得到的图像数据信息计算出霍夫变换后的图像的亮区暗区的各区域大小,并得到亮区暗区分界面的数据信息。根据标准浓度得到的亮区暗区分界面的数据,标定出标准浓度的测量刻度线并保留和输出对应标准浓度测量刻度线。最后就可以利用标定好的标准浓度刻度数据去测量未知浓度的待测量物质。
本文所研究的智能折光仪的浓度测量主要是根据不同环境下正确标定出来的标准数据在程序中留下的标准比例刻度来进行测量的。处理图像得到的亮区暗区分界面数据在已经标定好的刻度中按比例计算待测量浓度的准确值。
根据实际使用需要本文所研究的智能折光仪系统设计了浓度分析模块,主要是根据设置的浓度区域范围衍生出了两级浓度阈值,通过判断实时的浓度数据是否在两级阈值范围内而做出一些响应动作。当测量浓度值不在一级阈值范围而在二级阈值范围内时,发出低级警报;当测量值超过二级阈值时,发出高级警报并且弹出警告信息(实时浓度值过大/过小)。

图6 LCD控制流程
Fig.6 LCD Control flow
3.2.3 屏幕输出模块
本文所研究的智能折光仪系统主要包括ARM处理核心部分的LCD屏幕输出和上位机的人机交互界面的屏幕输出。
LCD控制流程如图6所示。
4 结束语
本文以仪器仪表产品的科技化、智能化为背景,以高精度、快速自动测量为目的,研究一种基于面阵CCD的智能折光仪系统。从实验测量得到的结果来看,本文所研究的智能折光仪系统的测量原理、硬件选择、软件设计都有一定的合理性,一定程度上具有很大的社会价值和市场价值。