基于计算机视觉的储备粮智能稽核方法
2013-10-15宋立明李秀华李万龙
宋立明,李秀华,李万龙
(长春工业大学 计算机科学与工程学院,长春 130012)
0 引 言
目前,我国储备粮食监管和稽核采用的都是人工操作,且国家储备粮库具有分散性,所以精确而又有效地监管和稽核储备粮成为监管部门的一大难题,虚库、偷盗和虚报贴息等不良现象影响了国家对粮食的宏观调控能力,给国家造成了巨大的经济损失[1]。数字图像的获取、传输和图像可识别技术的发展为储备粮食的自动监管和稽核问题提供了有效的解决方案。因此,基于机器视觉的粮食数量自动识别系统将成为粮食监管部门的管理需求。
目前,储备粮数量检测方法主要有称重计量法、主动测量法和图像识别法。其中称重计量法和主动测量法用时多,对设备要求高,维护成本也较高。图像识别法中的双(多)目视觉法存在立体匹配、三维信息恢复、匹配精度[2]等许多问题需要研究和解决;单目视觉法中,单CCD图像是二维的,缺乏三维信息,因此三维重建会出现多义性和病态。
鉴于此,笔者提出一种基于激光测距及三维重构技术的方法,给出了所需的实验设备及其安装要求。从理论上分析了利用激光测距传感器测得的距离信息对摄像机进行标定,以及利用这些距离信息和具有激光光斑的二维图像进行三维坐标计算,以获得粮面高度信息的原理及过程,并论述了该方法相对现有方法的优越性。
1 粮食数量检测方法
目前,粮食数量检测的方法可归纳为3种。
1)称重计量法。物体通过放置地衡的通道时可以自动称重,随后把称重结果发给管理者审核。我国少量的国家级大型储备库采用此方法。此方法对设备要求高,维护成本也较高。
2)主动测量法。某一物体表面与检测探头间的距离信息是应用激光、全球定位系统(GPS:Global Positioning System)和红外扫描等技术测定,然后应用坐标由空间3点计算的原理,将多个探头获取的数据进行拟合,以获得物体的全数字化表达。最后重积分数字化的物体获取体积,物体的重量就是该体积与密度的乘积。由于此方法要扫描物体的多个点,所以用时多,并且设备成本高。
3)图像识别法。主要有双(多)目视觉法及单目视觉法两种。双(多)目视觉法需要从两个(或多个)视角观测同一物体,物体的三维(立体)信息利用三角测量获取,但同时要计算图像与图像间的视差。这种方法还有立体匹配、三维信息恢复、匹配精度等许多问题需要研究和解决。单目视觉法中,单CCD(Charge-Coupled Device)图像作为单目视觉法的识别目标,识别二维的图像并计算相关的三维信息,以便把二维图像变成人们想要的三维图像。单CCD图像是二维的,缺乏三维信息,因此,三维重建会出现多义性和病态。
4)基于激光测距及三维重构技术的方法。将激光测距及三维重构技术应用于散装仓粮食数量识别中,是笔者提出的一种新的粮食数量识别方法。它是将激光器与摄像头安装在两个云台上。通过转动云台获得不同角度的激光器到粮面的距离信息,利用这些距离信息对摄像机进行标定,这是一种快速的新方法; 利用测得的距离信息和具有激光光斑的二维图像进行三维坐标计算,以获得粮面高度信息。该方法将主动测量法与单目视觉法相结合,仅用一个摄像头和一台激光器,结构简单,摄相机标定快速,且设备价格较低。
目前,基于图像识别技术的袋装仓和表面平整的散装仓的粮食数量识别方法已有一些论文研究,但未见产品; 对于表面凸凹不平的散装仓和露天粮堆的数量识别并未有报道,笔者提出的方法,可解决这类问题。
2 基于图像的袋装粮仓数量识别方法
文献[3]提出了基于图像识别的袋装粮仓数量识别方法,通过摄像机对粮仓现场进行图像采集,然后对粮堆相邻3个面上椭圆状“鱼鳞体”的数目进行识别,即可得到粮袋数量,从而得到粮食数量。
该方法的实现过程如下。
1)图像降噪。图像在采集、传输的过程中会产生各种噪声。先把图像转化为灰度图像,再判断图像中的噪声像素,然后使用中值滤波有效地去除噪声。
2)“鱼鳞体”特征突显。对降噪后的图像进行“鱼鳞体”的特征提取。先进行二值化,即用Sobel算子检测图象的边缘; 然后根据已定义的阈值范围,判断非边缘像素点是在椭圆内还是在边界上,若在椭圆内,像素值被设置为255,否则设置为0。
采用邻域推断法进行闭合化,以免把相邻的两袋粮食误判为一袋。某点周围的4个邻域中如果有3个以上与该点像素值一样,则该点像素值f′(i,j)被保留; 否则该点像素值被设置为:255-f′(i,j)。
3)“鱼鳞体”参数表达。“鱼鳞体”参数用几何矩法获取。该方法是先计算每个闭合像素块(R)的矩特征值,即:计算方向角θ、质心(a,b)和长短轴; 之后对比闭合像素块(R)和与该像素块近似的椭圆的特征参数(方向角、长短轴之比、面积等),置信区间内若在80%以上相等,则该闭合像素块(R)被判断为一个粮袋; 最后计算此椭圆“鱼鳞体”的椭圆度[4],以此确定粮袋所属面。
3 基于标尺的散装粮仓数量识别方法
文献[5]是基于矩形标尺的表面平整的散装仓粮食数量识别方法。其主要思想概述如下:假设散装粮仓底面积为S,高为H,粮食的密度为ρ。如果得到粮面以上矩形标尺的长度L,则粮食的质量M=ρV,体积V=S(H-L)。所以,关键问题是对粮面以上矩形标尺长度的识别和测算。矩形标尺的颜色、尺寸和长宽比例等因素影响着识别的精度。
矩形标尺的识别过程如下。
1)颜色提取。将摄像头采集到的RGB(红、绿、蓝)格式图像转换到HIS(色调、饱和度和强度)模型空间[6]。在HIS彩色模型中,红色区域分布在315°~360°和0°~23°内。据此可提取矩形标尺的红色区域,即确定 ROI区域[7]。
2)边缘检测。采用Robert边缘检测算子进行边缘提取,以更加精确地减少ROI区域像素点。
3)矩形标尺的判定。对已标记的ROI边缘区域进行边缘平滑处理[8],然后进行矩形标尺的确定。先根据矩形的4个内角均为90°的特征,利用角度隶属函数确定ROI区域; 再根据矩形的邻边长度不等的特征,利用邻边隶属函数[9]进一步确定ROI区域; 最后再对其进行视角误差校正。根据校正后的对象体与原始标尺的比例关系确定其尺寸,即可得到粮面以上矩形标尺长度L,则粮面高度为(H-L),从而可以计算粮食质量。
4 基于激光测距及三维重构技术的散装粮仓数量识别方法
笔者提出的基于激光测距及三维重构技术的散装粮仓数量识别方法,既适用于表面平整的粮仓,又适用于凸凹不平的散装仓和露天粮堆。其实现过程如下。
1)激光测距。利用脉冲激光测距法进行测距,激光经准直瞄准后照射被测目标,遇到目标后,激光脉冲的部分能量从目标返回到接收器上。当光速为c,发射信号和回波信号的时间间隔为t时,目标距离L=1/2ct。
这里拟采用FPGA(Field-Programmable Gate Array)实现延迟线插入法进行高精度时间间隔测量[10],测时精度小于0.3 ns,测距精度为9.2 cm左右。
2)激光测距用于摄像机标定。摄像机的参数可能会随着温度、湿度、气压等环境的变化而变化,所以需要对摄像机进行标定。目前己经有许多摄像机标定的方法,如Tsai[11]提出的基于二维标定参照物的标定方法,该方法需要一套昂贵的精密标定设备; Zhang[12]提出了基于二维平面模板的标定方法,该标定法需要从不同角度拍摄同一标定模板2幅以上图像。
由于粮仓内环境的限制,以上方法不适用,故笔者提出用激光测距仪对摄像机进行标定。
图1 图像坐标系
实现时,把摄像机和激光测距仪分别安装到两个云台上,调整云台使摄像机和激光测距仪在合适初始位置,定标过程中转动载有测距仪的云台,用摄像机获取带有激光光斑图像并存储在计算机中。
存储在计算机中的数字图像坐标系可用像素坐标(u,v)和物理坐标(x,y)两种方法表示(见图1)。假定像素点大小为k×n(设单位为mm),像素坐标原点为图像的左下角,物理坐标原点为图像的中心,两种坐标表示方法的关系是
(1)
摄像机坐标系(Xc,Yc,Zc)是以摄像机镜头的光心为原点,Xc轴和Yc轴与图像坐标系的x轴和y轴平行,并且Zc轴垂直于图像平面的直角坐标系。
世界坐标系(Xw,Yw,Zw)是以安装激光测距仪的云台的转动中心为世界坐标系原点,Zw的方向为最初的激光测距仪的激光发射方向。摄像机坐标系和世界坐标系的关系是
(2)
其中R3×3=(rx,ry,rz)为旋转矩阵,t3×1=(tx,ty,tz)T为平移矩阵。
控制载有激光测距仪的云台的水平和垂直运动角度,可以测得不同的距离,利用这些距离,可计算激光测距仪光斑在世界坐标系下的坐标。光斑在图像中的坐标可运用平均背景法得到[13],为提高精度可用亚像素级坐标进行计算。
在摄像机的标定过程中,激光测距仪的光斑点P在图像上的成像位置可用中心射影模型表示。光斑点P在摄像机坐标系下坐标为(Xc,Yc,Zc),在图像上所成的像点p的物理坐标为(x,y),根据比例关系有:x=fXc/Zc,y=fYc/Zc,f为焦距。用齐次坐标表示为
(3)
综上所述,可得到世界坐标系下P点坐标和其投影点p在图像坐标系下坐标(u,v)之间的关系
(4)
即
(5)
其中ax=f/k,ay=f/n,M1包含摄像机的内参数,M2包含摄像机的外参数,M称为投影矩阵。如果解出矩阵M,即可分解出摄像机的所有内外参数。
把式(5)写成
(6)
其中(Xwi,Ywi,Zwi,1)为第i个空间点Pi的坐标,(ui,vi,1)为Pi对应的图像点的坐标。
通过移动载有激光测距仪的云台,可知n个空间点和图像点的坐标Pi和pi,把式(6)展开并消去Zc,得到2n个关于投影矩阵M元素的线性方程
Km=U
(7)
其中
由于矩阵M乘以任意不为零的常数不影响Pi和pi的关系,所以指定式中的m34=1,其中K,U为已知,利用最小二乘法解出m=(KTK)-1KTU,利用正交性即可从向量m中分解出摄像机的内外参数。
3)三维重构。用立体视觉的方法进行三维重构,通常需要两幅或多幅二维图像恢复物体的三维几何形状。笔者采用的方法是借助激光测距仪得到物体表面点的三维坐标。
由摄像头获取带有激光光斑的二维图像。由于设定世界坐标系的原点在载有激光测距仪云台的轴心,Z轴方向为初始的激光测距仪发射激光的方向,XOY平面与Z轴垂直。所以初始状态下,由激光测距仪测得的距离l,即为光斑点的Z轴坐标,光斑的X和Y轴坐标值为0。当载有测距仪的云台转动时,水平和垂直方向的转动角度分别为α和β,利用公式
Yw=lsinβ,Xw=lcosβsinα,Zw=lcosβcosα
(8)
可计算光斑在世界坐标系下的三维坐标(XW,YW,ZW),二维图像中的光斑采用平均背景法提取,然后计算光斑在图像坐标系下的坐标(u,v)。
当载有摄像机的云台转动时,在知道云台水平转动角度θ和垂直转动角度φ的前提下,利用标定时的初始摄像机外参数(不需要重新标定摄像机的外参数,只是其旋转矩阵R发生改变,平移向量t没有发生变化),就可计算摄像机旋转后的旋转矩阵(用θ和φ表示)。
当摄像机绕Y轴做水平转动的转动角度为θ时,旋转矩阵是Rry(θ); 当摄像机绕X轴做水平转动的转动角度为φ时,旋转矩阵是Rrx(φ); 摄像机不用绕Z轴旋转,所以其旋转角度是0,旋转矩阵是Rrz(0)。总的旋转矩阵Rr是Rry(θ),Rrx(φ)和Rrz(0)的乘积。
按照旋转顺序,Rr=RryRrxRrz。所以摄像机旋转后的旋转矩阵为RRr。
通过控制载有激光测距仪的云台移动来控制激光光斑的位置,并根据需要加入辅助激光点,从而得到物体表面点的三维坐标。
对于表面是平整的散装仓,在摄像机标定后,只要检测出粮面上一点的三维坐标,即可得到粮面高度H。粮仓的形状(圆形或矩形)是已知的,所以底面积S可求,则粮食数量为:ρSH(ρ为粮食密度)。对于表面凸凹不平的散装仓或是露天粮堆,需要检测出粮面上多点的三维坐标,然后进行曲线拟合、重积分得到其体积,再以体积乘以密度即可得到粮食数量。
5 结 语
基于图象识别的袋装仓和散装仓粮食数量识别方法均未考虑摄像机标定问题。由摄像头获取图像,必须对摄像头内部和外部参数进行标定,否则获取的图像与真实图像有区别,甚至相差甚远,影响识别效果。笔者提出的基于激光测距及三维重构技术的散装仓粮食数量识别方法,将激光技术用于摄像机标定,由摄像头获取带有激光光斑的二维图像,以图像中的激光光斑的位置为参考点,进行射影变换得到点的三维坐标,再由得到的有限点进行曲面拟合以得到场景的全局结构。此种三维重构法能克服单目视觉法因二维图像缺少立体维度信息,而导致三维重建多义性的缺点。
国家储备粮自动与远程监管、稽核的关键技术是粮食数量的自动识别。一直以来由于技术的限制,国内外没有行之有效的措施与设备。随着图像处理和计算机技术的发展,基于机器视觉的粮食数量自动识别将成为储备粮自动监管和稽核的必然趋势。
参考文献:
[1]杨光焰.我国粮食宏观调控面临的七大矛盾[J].粮食问题研究,2005(1):7-9.
YANG Guang-yan.Seven Big Contradictions Facing in our Country Grain Macro-Control[J].Study on Grain Problem,2005(1):7-9.
[2]尤路,付永庆,王咏胜.USB摄像头平行双目视觉系统在面积测量中的应用[J].应用科技,2008,35(2):1-4,16.
YOU Lu,FU Yong-qing,WANG Yong-sheng.The Application of Parallel Binocular Vision System Using USB Cameras in Area Measurement[J].Application Science and Technology,2008,35(2):1-4,16.
[3]林鹰.储备粮智能监管与稽核系统关键技术研究[D].天津:天津大学计算机科学与技术学院,2008.
LIN Ying.Research on the Key Technologies of Reserved Grain Intelligent Supervision and Audit System[D].Tianjin:College of Computer Science and Technology,Tianjin University,2008.
[4]唐毅,郑丽敏,任发政,等.基于几何特征的图像感兴趣区域的自动定位研究[J].计算机工程,2007,33(1):200-202.
TANG Yi,ZHENG Li-min,REN Fa-zheng,et al.Study on Automatic Location for Interested Region of Image Based on Geometrical Features[J].Computer Engineering,2007,33(1):200-202.
[5]邓玉华,冯运义.基于Visual C++矩形标尺智能识别[J].粮食储藏技术,2007,36(6):13-16.
DENG Yu-hua,FENG Yun-yi.Intelligent Identification of Rectangle Benchmark Based on Visual C++[J].Grain Storage Technique,2007,36(6):13-16.
[6]GONZALEZ R C,WOOD R E.Digital Image Processing[M].2nd ed.New York:Prentice Hall,2002:77-86.
[7]STEPHEN PRATA.C++ Primer Plus[M].4th ed.Beijing:Posts &Telecom Press,2002.
[8]袁修贵,龚正,孟正中.基于边缘方向性的小波边缘检测算法[J].计算机科学与工程,2010,32(3):49-51.
YUAN Xiu-gui,GONG Zheng,MENG Zheng-zhong.A Wavelet Transform-Based Edge Detection Algorithm Based on Edge Direction[J].Computer Engineering &Science,2010,32(3):49-51.
[9]KITTLER J,HATEF M,DUIN R P W.On Combining Classifiers[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,1998,20(3):226-239.
[10]胡春生.脉冲半导体激光器高速三维成像激光雷达研究[D].北京:国防科学技术大学光电科学工程学院,2005.
HU Chun-sheng.Study on High-Speed 3D-Imaging Ladar Using a Pulse Laser Diode[D].Beijing:School of Opto-Electronic Science and Engineering National Defense Science and Technology University,2005.
[11]TSAI R Y.An Efficient and Accurate Camera Calibration Technique for 3D Machine Vision[C]∥Proc of IEEE Conference of Computer Vision and Pattern Recgonition.Miami Beach,FL:[s.n.],1986:364-374.
[12]ZAHNG Zheng-you.A Flexible New Technique for Camera Calibration[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2000,22(11):1330-1334.
[13]GARY BRADSKI,ADRIAN KAEBLER.Learning Open CV (Computer Vision with the Open CV Library)[M].[S.l.]:O’Relly Media,Inc,2008:271-276.