田间异物识别算法研究
2018-07-03龚丽农高鸿雁张惠莉赵泽民付全青
曲 鹏,龚丽农,高鸿雁,张惠莉,赵泽民,付全青
(1.青岛农业大学 机电工程学院,山东 青岛 266109;2.北京中宸泓昌科技有限公司,北京 100083;3.山东中烟工业有限公司青岛卷烟厂,山东 青岛 266101)
0 引言
田间异物指农田中非作物性目标,如机井、土坟、大型石块或在农机作业前方的人等。农机作业时,尤其是大田作业,长时间在同一视觉背景下工作,农机手由于惯性等原因会对突然出现的田间异物反映速度下降,从而可能引发人机安全事故。为此,针对田间机井、石块、土堆等体积较大异物的识别进行了算法的研究,以研究快速、低成本且能够广泛应用在普通农机上的田间异物识别报警系统。
1 图像特征分析
1.1 无异物背景图像分析
农机在正常情况下作业,农机手工作前方的背景是大片相同景观,以视觉观察,大致没有色差,如图1所示。图像像素为2 048×1 536,可分别获取到2 048×1 536个点的R、G、B值[1]。
分别对两张图片找出各像素点的R、G、B及R+G+B值中的最大值、最小值,以及整张图片的每个像素点所对应的R、G、B值,相加后求平均值。将图片分成16行12列共192个区域,分别计算各个区域的R、G、B的R+G+B值的平均值,并找出其中的最大值、最小值,数据如表1所示。
(a) 麦田背景 (b) 绿植被背景
由表1可知:在麦田背景下按像素计算,最小的差值达到229。按区域均值计算法,每个区域与整张图片的均值差值的最大差值为23,明显小于像素计算方法。这种计算方法,符合农机手在观测大田时,“大致观察”而忽略极小差别的习惯,而按R+G+B进行分析也有相同的结论[2]。
1.2 区域均值计算模型
设图像的像素为m×n,则图像数据可为m×n×3的三维像素矩阵,分别代表3种色系R*(b,c)、G*(b,c)、B*(b,c),设定区域分块参数为a,则有
(1)
在计算中,为确保m、n被整除,取a为m、n的公约数。
将矩阵R*(b,c)、G*(b,c)、B*(b,c)的行值m、列值n分别除以a,则矩阵被分成b×c块区域,每块区域中所含的像素点数为a2;对每个区域的像素点求平均值,将所有区域的像素平均值列入矩阵中,得到行c列的矩阵R(b,c)、G(b,c)、B(b,c)[3]。
则区域均值矩阵R(b,c)中的元素计算公式为
(2)
对于矩阵G(b,c)、B(b,c)中的元素也是采用式(2)的方法计算。
表1 无异物背景图片主要参数计算表
1.3 有异物图像分析
大田内有坟包的图片,拍摄所得图像像素为2 048×1 536,如图2所示。
(a) 无异物背景 (b) 坟包异物原图 (c) 区域均值处理图
计算无异物背景图像下大田的均值为R1=60、G1=124、B1=27。根据区域均值计算模型,按照a=128分区进行计算。获取区域均值矩阵R、G、B。
将矩阵R中的所有元素与R1进行对比,画出矩阵中与R1差值的绝对值大于50的区域。用相同方法对比G中的元素与G1的差值和B中的元素与B1的差值,画出差值绝对值大于50的区域。可以看出:出现明显数据差值的位置与异物存在的位置大致相同。利用MatLab图像生成函数将经区域均值计算后的数据显示成图像[见图2(c)]可看到相同的结果。则有
值得注意的是模拟矩阵G的左下被画出的部分与G1差值的绝对值也大于50,但是综合看3个模拟矩阵中R和B中对应部分并不满足绝对条件且此区域与其他区域相比过小,所以忽略不计。
将以上3个矩阵进行相加,得到图像的R+G+B数据,利用同样的算法进行计算得到R+G+B均值数据,画出与均值差值的绝对值大于50的区域,与异物存在位置有相同的结果。这个结论对于将这种算法应用到机具上有很重要的意义。由于大部分车载摄像头的数据传输格式为RGB连续型,应用R+G+B数据可大大减少运算时间,即
图3为绿色植被内有基井的图片,拍摄所得图像像素为2 048×1 536,R+G+B矩阵的均值为320。该图的特点是背景图片不太均匀,且异物与背景的反差没有图2大。用同样的方法进行区域均值计算,分别取a=128和a=256,获得矩阵R+G+B。
(a) 无异物背景图 (b) 基井异物背景图
(c) a=128均值模拟图 (d) a=256均值模拟图
当a=128时,R+G+B为
增大a的取值,可以减少计算时间,当a=256时,R+G+B为
分析当a分别为128和256时的矩阵R+G+B,并画出与均值差的绝对值大于150的元素,可知:在图片像素不太均匀、且异物与背景的反差没有图2大的情况下,a取不同的值都能得出与图2相同的结论,可以说明本算法具有比较好的兼容性。
不同的是,当a=128时,被画出的区域中有个别数据并不满足判别条件,分析原图可知主要原因是:基井中井盖部分与背景的色差很小使像素差值未能达到要求。
对比图3(c)和图3(d)可以发现:当a=256时图像中的异物失真比较严重,并不能判断出异物的大小和轮廓,结果不理想;但是,与a=128相比此时处理的数据要更少,计算更为快捷。所以,如果图像中异物的比例较大且于背景颜色差别较大时,适当增大a的取值,可以在不影响结果的前提下减少计算时间。
2 异物快速定位法
摄像头位置、拍摄角度与农机的关系。如图4(a)所示,摄像头安装在A点,设安装高度为hAD,相机的倾斜角为α。图4(b)为拍摄图像所对应的实际区域,相当于一个梯形。
(a) 摄像头安装示意图 (b) 实际拍摄区域示意图
由图4(a)可知lDC=hAE·tanα,设农机最快的速度为vM,处理器处理完一张图片所需的时间为tM,从紧急制动到刹停所需的距离记为lZD,则当lDC≥3lZD+vMtM时认为农机有足够安全的刹车距离。其中,lDC为农机最前端D点到摄像头所拍摄实际区域距离农机最近的C点的距离。为满足安全的刹车距离lDC通过调节安装高度hAD,相机的倾斜角α来实现。在满足刹车距离的同时还需要w1大于农机的作业宽度,此时认为摄像头的安装满足要求。
设通过区域均值计算模型得到的R(b,c)矩阵中每个区域小块的面积为sK,高为Δh。其中,sK的大小根据区域小块的坐标变化而不断变化,摄像头与垂直方向的夹角为α,摄像机的横向视角为θ,纵向视角为θ′,摄像机传感器横向分辨率是m、纵向分辨率是n。
根据图4计算得出,sK与区域小块坐标之间的关系,即
(3)
设当背景图像无异物时,大田背景图像R+G+B矩阵的均值为M,并根据均值计算模型计算出RGB相加的均值矩阵RGBaver(i,j),令辨识参数为t,则有
(4)
其中,若x(i,j)与均值M的差值大于t则对RGBaver(i,j)的对应位置1,其余位置置0,这样处理后得到的矩阵RGB01(b,c)为二值矩阵。
此时,若要判断图像中是否存在异物,只需判断矩阵RGB01(b,c)中连片1的个数是否达到一定数值ZL(ZL为正整数),若达到则说明存在异物;反之,则说明图像中不存在异物。ZL的设置应与机具的规模和a值相关。
将RGB01(b,c)矩阵从最靠近机具侧的b行开始,按行将每个元素相加,设第x行的元素相加的和为
(5)
其中,x矩阵的行索引x=b,b-1,…,1;sx为第x各元素相加之合。
若sx=0,令x=x-1继续计算sx-1的值;若sx≠0,则Zi=1。此时若ZL=1,证明图像中存在异物,第x行中第一个值为1的元素的位置,即为异物所在的位置;若ZL>1,将第x行中第一个不为0的元素记为K(i,j),一旦找到K(i,j)则进行如下计算,即
(6)
其中,Zi是以K(i,j)为起始点连片1的个数;fi表示K(i,j)周围元素值为1的个数。
当fi=0在K(i,j)周围与之相连的元素值都为0,不存在连片的1,则证明该点不存在异物,此时将Zi′的值清0。
当fi≠0时,判断Zi与ZL的大小关系,若Zi′≥ZL,说明图片中存在异物,K(i,j)的位置即为异物所在的位置;若Zi′ 当点K(i,j)不存在异物时,继续寻找下一个不为0的元素,循环进行上述计算。 因对图像的处理是从最靠近机具侧的b行开始,故判断出的第一个异物距离农机最近,此时认为本张图片处理完毕。 本系统硬件主要由电源供电模块、STM32主控模块、液晶屏显示模块、图像数据处理模块、异物识别模块、声光报警模块,以及摄像头组成,如图5所示。 单片机选用了意法半导体公司的STM32407芯片,时钟控制运用晶体振荡器模式,外部晶振使用12MHz的无源晶振为系统提供精确的主时钟,负载电容值根据振荡器调整为20pF[4]。采用OV2640摄像头,分辨率为1 600×1 200。控制系统采用TFTLCD电容触摸液晶屏作为显示模块,具有功耗低、亮度均匀及稳定性好等优点[5]。数据处理模块对摄像头所采集的图像数据进行读取与处理,通过异物识别模块来判断图像中是否存在异物,如存在异物则通过单片机驱动声光报警电路实现报警。 图5 系统硬件结构图 系统软件部分主要包括主程序、摄像头数据读取程序、图像数据处理程序、异物识别程序、液晶显示屏图像显示和串口发送数据程序,以及系统报警的程序设计等。当单片机读取到摄像头拍摄的图像数据时,对数据做相应的处理,通过异物识别模块进行异物的判别,根据判别结果决定是否进行报警。初始化程序包括定时器中断及串口中断等必要的寄存器和工作模式的配置,主程序流程图如图6所示。 图6 系统软件主程序流程图 1)试验方法及过程:将摄像头安装于五证TA354型拖拉机上,进行实地的田间图像采集。拍摄时摄像头距离地面的垂直高度为3m,将摄像头与水平方向的夹角α分别调至45°与55°进行拍摄,拍摄图像的像素为1 600×1 200。已知摄像头的横向视角θ=40°,所以纵向视角θ′=30°。 当α=45°时,农机最前端到摄像头所拍摄实际区域的距离为3m,系统处理一张图像所需要的时间约为0.97s。农机在田间作业期间速度不会超过4.5km/h,经测量拖拉机从最大作业速度紧急制动到静止所需要的制动距离小于0.5m,则有3m≥3lZD+vMtM,且图像所对应的实际区域的最小宽度为2.18m,大于拖拉机的作业宽度。当α=55°时,摄像头的安装依然符合要求。 改变安装角度α与分块参数a的取值,对区域小块所对应面积的最大值与最小值之间的关系,如表2 所示。 表2 α与a取值对区域小块面积影响 由表2可以看出:当α一定时,a的取值越大,每个区域小块所对应的实际面积增大。当a的取值一定时,随着α的增加,每个区域小块所对应的实际面积增大且面积的最大值与最小值的比例增加。 2)试验结果分析:以α=45°时采集的图像为例,如图7所示。 (a) (b) (c) (d) 当a=128时,得到图7所对应的二值矩阵RGB01(16,12)此时将二值矩阵根据距离农机侧的远近划分为近、中、远3个区域:横坐标在11~16之间的为近区域;横坐标在5~10之间的为中间区域;横坐标在1~6之间的为远区域。矩阵中相邻区域小块的实际面积相差较小,为方便计算可用0.06、0.14、0.36m2分别代替近、中、远3个区域中每个区域小块所对应的实际面积。 设所求的异物的面积要大于0.5m2,此时近、中、远3个区域的ZL值分别为9、4、2,即3个区域中连片1的数个分别大于对应的ZL值时证明存在异物。 1)以田间体积较大的异物包括土堆、石块和机井等为研究对象,以实现快速识别田间异物为目的,建立田间异物识别数学模型。将区域均值计算模型作为图像数据处理的基础,并且采用将R、G、B矩阵的对应区域均值相加及阈值法求二值矩阵等方法,实现了异物的快速定位法。 2)试验表明:田间异物识别算法能够快速地识别出图像中的异物,且可以对异物的位置进行较为准确的定位,具有较高的实用性和研究价值。本设计适用于田间体积比较大的异物,但并不适应于杂草、农作物的识别。 参考文献: [1] 何希平,张琼华.基于MATLAB的图像处理与分析[J].重庆工商大学学报,2003,20(2):22-26. [2] 张瑾,杨常清.基于矩阵分析的数字图像处理方法[J].微机发展,2003,13(5):37-38. [3] 马永慧.基于MatLab的图像分割的技术研究[J].陕西电子技术,2012,91(4):2. [4] 唐雪松.基于STM32F407的IEEE1588从时钟设计与实现[D].大连:大连理工大学,2014. [5] 熊雪艳,梁光胜,赖程鹏,等.基于OV2640模块的网络视频监控系统设计[J].单片机与嵌入式系统应用,2015(12):23-26.3 系统实现
4 试验与分析
5 结论