本申请实施例涉及农业领域,并且更具体地,涉及一种基于单目摄像头的苗线识别方法、装置和农机。
背景技术:
随着科技的发展,农业机械化越来越趋向于智能化,农业机械自动导航技术是精细农业的关键技术,尤其是农机在田间作业的时候,苗线的识别至关重要。
现有技术中,一般会利用农机上的摄像头抓拍若干张图像,然后将这若干张图像的图像坐标转换为实际平面坐标。然而,目前图像中的实际平面坐标需要双目摄像头支持,使得成本较高。
技术实现要素:
本申请提供一种基于单目摄像头的苗线识别方法、装置和农机,可以在降低成本的前提下识别苗线,而且识别的该苗线可以不受农机行驶过程中由于参数的变化的影响,有效的提高了苗线识别的准确率,从而使得农机可以按照识别的苗线方向行驶,可以避免对农作物的损坏。
第一方面,提供了一种基于单目摄像头的苗线识别方法,包括:
在农机行驶过程中,获取所述农机上的单目摄像头拍摄的图像的m个目标像素点,所述m个目标像素点为所述图像中包括的n行农作物中每一行农作物所包括的m个目标像素点;
将所述每一行农作物所包括的m个目标像素点的图像坐标转换为所述每一行农作物包括的m个平面目标坐标;
将转换后的所述每一行农作物的m个平面目标坐标所对应的坐标点连接形成的n条线识别为所述农机行驶过程中的苗线。
本申请提供的方案,通过对农机行驶过程中利用单目摄像头获得的图像中的每一行农作物包括的m个目标像素点进行转换,将其转换为每一行农作物包括的m个平面目标坐标,并将转换后的每一行农作物的m个平面目标坐标所对应的坐标点连接形成的n条线识别为农机行驶过程中的苗线,可以在降低成本的前提下识别苗线,而且识别的该苗线可以不受农机行驶过程中由于参数的变化的影响,有效的提高了苗线识别的准确率,从而使得农机可以按照识别的苗线方向行驶,可以避免对农作物的损坏。
结合第一方面,在一些可能的实现方式中,所述n=3。
结合第一方面,在一些可能的实现方式中,所述将每一行农作物所包括的m个目标像素点的图像坐标转换为所述每一行农作物包括的m个平面目标坐标,包括:
结合所述单目摄像头的一组动态参数的k种不同取值,将所述每一行农作物所包括的m个目标像素点中的每一个像素点的图像坐标转换为k个平面坐标,以获得所述每一行农作物所包括的m个目标像素点的k组平面坐标,k为大于或等于2的整数;
基于预设规则从所述k组平面坐标中选择所述每一行农作物包括的m个平面目标坐标。
结合第一方面,在一些可能的实现方式中,所述预设规则为使得识别的所述n行农作物中相邻行的农作物的苗线的斜率的差值最小和/或间距的差值最小。
本申请提供的方案,通过结合所述单目摄像头的一组动态参数的k种不同取值,将所述每一行农作物包括的m个目标像素点中的每一个像素点的图像坐标转换为k个平面坐标,并基于预设规则从所述k组平面坐标中选择所述每一行农作物包括的m个平面目标坐标,使得识别的苗线可以不受该组动态参数的变化的影响,有效的提高了苗线识别的准确率,从而使得农机可以按照识别的苗线方向行驶,可以避免对农作物的损坏。
结合第一方面,在一些可能的实现方式中,所述动态参数包括以下至少一个:
所述单目摄像头的俯角、所述单目摄像头的左右倾斜角、所述单目摄像头距离目标物体的高度。
本申请提供的方案,通过结合所述单目摄像头的一组动态参数的k种不同取值,将所述每一行农作物包括的m个目标像素点中的每一个像素点的图像坐标转换为k个平面坐标,并基于预设规则从所述k组平面坐标中选择所述每一行农作物包括的m个平面目标坐标,使得识别的苗线可以不受农机行驶过程中由于摄像头的高度、俯角以及左右倾斜角的变化的影响,有效的提高了苗线识别的准确率,从而使得农机可以按照识别的苗线方向行驶,可以避免对农作物的损坏。
结合第一方面,在一些可能的实现方式中,所述结合所述单目摄像头的一组动态参数的k种不同取值,将所述每一行农作物所包括的m个目标像素点中的每一个像素点的图像坐标转换为k个平面坐标,以获得所述每一行农作物所包括的m个目标像素点的k组平面坐标,包括:
根据以下公式,将所述每一行农作物所包括的m个目标像素点中的每一个像素点的图像坐标转换为k个平面坐标,以获得所述每一行农作物所包括的m个目标像素点的k组平面坐标;
y0=(imageh-topi)/imageh*maxv
sinak'=y0/ik'*sin(anglebk')
ak'=ak'sin(sinak')
gyk'=sinak'*i0k'/sin(90-ak'-angleak')
i2k'=gyk'/sinak'*sin(90 angleak')
gxk'=(lefti-imagew/2)/inagew*maxhk'
gxk'=i2k'/ik'*gxk'
gyk'=gyk' d0k'
tgx0k'=heightk'*sin(angletiltk')
tgy0=0
tgz0k'=heightk'*cos(angletiltk')
tgx1k'=gx*cos(angletiltk')
tgy1k'=gyk'
tgz1k'=gxk'*sin(angletiltk')
rk'=tgz1k'/tgz0k'
tgxk'=(tgx1k' rk'*tgx0k')/(1 rk')
tgyk'=(tgy1k' rk'*tgy0)/(1 rk')
其中,i表示所述m个目标像素点中的第i个目标像素点,i≤m;k'表示所述k组平面目标中的第k'组平面目标,k'≤k;
imagew*imageh表示所述图像的图片分辨率,(topi,lefti)表示所述图像中的第i个目标像素坐标点的坐标值,maxv表示所述图像的垂直映射最远范围,i0k'表示所述动态参数取值为第k'种时所述图像沿距离所述单目摄像头的直线距离,anglebk'表示所述动态参数取值为第k'种时所述图像的垂直映射夹角,angleak'表示所述动态参数取值为第k'种时所述单目摄像头的下方盲区夹角,maxhk'表示所述动态参数取值为第k'种时所述图像的垂直映射宽度,d0k'表示所述动态参数取值为第k'种时所述图像沿距离所述单目摄像头的水平距离,angleck'、angletiltk'、heightk'分别表示所述动态参数取值为第k'种时所述单目摄像头的俯角、左右倾斜角、距离目标物体的高度。
结合第一方面,在一些可能的实现方式中,所述m=2。
第二方面,提供一种基于单目摄像头的苗线识别的装置,包括:
获取单元,用于在农机行驶过程中,获取所述农机上的单目摄像头拍摄的图像的m个目标像素点,所述m个目标像素点为所述图像中包括的n行农作物中每一行农作物所包括的m个目标像素点;
转换单元,用于将所述每一行农作物所包括的m个目标像素点的图像坐标转换为所述每一行农作物包括的m个平面目标坐标;
识别单元,用于将转换后的所述每一行农作物的m个平面目标坐标所对应的坐标点连接形成的n条线识别为所述农机行驶过程中的苗线。
结合第二方面,在一些可能的实现方式中,所述n=3。
结合第二方面,在一些可能的实现方式中,所述转换单元进一步用于:
结合所述单目摄像头的一组动态参数的k种不同取值,将所述每一行农作物所包括的m个目标像素点中的每一个像素点的图像坐标转换为k个平面坐标,以获得所述每一行农作物所包括的m个目标像素点的k组平面坐标,k为大于或等于2的整数;
所述装置还包括:
选择单元,用于基于预设规则从所述k组平面坐标中选择所述每一行农作物包括的m个平面目标坐标。
结合第二方面,在一些可能的实现方式中,所述预设规则为使得识别的所述n行农作物中相邻行的农作物的苗线的斜率的差值最小和/或间距的差值最小。
结合第二方面,在一些可能的实现方式中,所述动态参数包括以下至少一个:
所述单目摄像头的俯角、所述单目摄像头的左右倾斜角、所述单目摄像头距离目标物体的高度。
结合第二方面,在一些可能的实现方式中,所述转换单元进一步用于:
根据以下公式,将所述每一行农作物所包括的m个目标像素点中的每一个像素点的图像坐标转换为k个平面坐标,以获得所述每一行农作物所包括的m个目标像素点的k组平面坐标;
y0=(imageh-topi)/imageh*maxv
sinak'=y0/ik'*sin(anglebk')
ak'=ak'sin(sinak')
gyk'=sinak'*i0k'/sin(90-ak'-angleak')
i2k'=gyk'/sinak'*sin(90 angleak')
gxk'=(lefti-imagew/2)/inagew*maxhk'
gxk'=i2k'/ik'*gxk'
gyk'=gyk' d0k'
tgx0k'=heightk'*sin(angletiltk')
tgy0=0
tgz0k'=heightk'*cos(angletiltk')
tgx1k'=gx*cos(angletiltk')
tgy1k'=gyk'
tgz1k'=gxk'*sin(angletiltk')
rk'=tgz1k'/tgz0k'
tgxk'=(tgx1k' rk'*tgx0k')/(1 rk')
tgyk'=(tgy1k' rk'*tgy0)/(1 rk')
其中,i表示所述m个目标像素点中的第i个目标像素点,i≤m;k'表示所述k组平面目标中的第k'组平面目标,k'≤k;
imagew*imageh表示所述图像的图片分辨率,(topi,lefti)表示所述图像中的第i个目标像素坐标点的坐标值,maxv表示所述图像的垂直映射最远范围,i0k'表示所述动态参数取值为第k'种时所述图像沿距离所述单目摄像头的直线距离,anglebk'表示所述动态参数取值为第k'种时所述图像的垂直映射夹角,angleak'表示所述动态参数取值为第k'种时所述单目摄像头的下方盲区夹角,maxhk'表示所述动态参数取值为第k'种时所述图像的垂直映射宽度,d0k'表示所述动态参数取值为第k'种时所述图像沿距离所述单目摄像头的水平距离,angleck'、angletiltk'、heightk'分别表示所述动态参数取值为第k'种时所述单目摄像头的俯角、左右倾斜角、距离目标物体的高度。
结合第二方面,在一些可能的实现方式中,所述m=2。
第二方面的有益效果可以参考第一方面的有益效果,在此不再赘述。
第三方面,提供了一种农机,包括:单目摄像头,用于拍摄农机行驶过程中作业地块的图像;处理器,用于控制所述单目摄像头并执行第一方面或第一方面的任意可能的实现方式中的方法。
第四方面,提供了一种计算机可读存储介质,包括计算机程序,当其在计算机设备上运行时,使得所述计算机设备中的处理单元执行第一方面或第一方面的任意可能的实现方式中的方法的指令。
第五方面,提供了一种计算机程序产品,包括计算机程序指令,该计算机程序指令使得计算机执行上述第一方面或第一方面的各实现方式中的方法。
第六方面,提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述第一方面或第一方面的任一可能的实现方式中的方法。
附图说明
图1为本申请实施例的应用场景的示例图。
图2为本申请实施例提供的一种基于单目摄像头的苗线识别的方法的示意性流程图。
图3为本申请实施例提供的一种识别的苗线区域的示意图。
图4为本申请实施例提供的一种识别的苗线中线散点的示意图。
图5为本申请实施例提供的一种获取的目标像素点的示意图。
图6a为本申请实施例提供的基于垂直拍摄的光路示意图。
图6b为本申请实施例提供的基于平行拍摄的光路示意图。
图6c为本申请实施例提供的基于倾斜拍摄的光路示意图。
图7为本申请实施例提供的一种基于单目摄像头的苗线识别的装置。
具体实施方式
下面将结合附图,对本申请实施例中的技术方案进行描述。
本申请实施例可以应用在田间作业中,识别作业地块的苗线的位置,使得农机按照苗线的方向行驶。
图1是本申请实施例提供的技术方案的应用场景的示例图。如图1所示,该应用场景中可以包括至少一个农机110和一个摄像头120。在农机110作业行驶过程中,摄像头120采集作业地块的图像,根据采集到的作业地块的图像的图像坐标识别作业地块的苗线的位置。
农机110在行驶过程中,一般会利用农机上的摄像头120抓拍若干张图像,然后将这若干张图像的图像坐标转换为实际平面坐标。然而,目前图像中的实际平面坐标需要双目摄像头支持,使得成本较高。
本申请提供一种基于单目摄像头的苗线识别方法,可以在降低成本的前提下识别苗线,而且识别的该苗线可以不受农机行驶过程中由于摄像头的高度、俯角以及左右倾斜角的变化的影响,有效的提高了苗线识别的准确率,从而使得农机可以按照识别的苗线方向行驶,可以避免对农作物的损坏。
下面将结合图2详细描述本申请的方案。
图2是本申请实施例提供的一种基于单目摄像头的苗线识别方法的示意性流程图。如图2所示,该方法200包括:
s210,在农机行驶过程中,获取所述农机上的单目摄像头拍摄的图像的m个目标像素点,所述m个目标像素点为所述图像中包括的n行农作物中每一行农作物所包括的m个目标像素点。
本申请实施例中的摄像头为单目摄像头,该单目摄像头可以安装于农机前方,同时确保其无遮挡。此外,该单目摄像头的分辨率可以为640*400,也可以为其它数值(如640*480),不予限制。
可选地,在一些实施例中,所述m=2。
如图3所示,为本申请实施例提供的一种识别的苗线区域的示意图。如图4所示,为本申请实施例提供的一种识别的苗线中线散点的示意图。
参考图3,可以看出,通过对图像进行识别后,可以识别出苗线区域,即用白色线条环绕的区域;然后再对该苗线区域进行中线处理,即提取每一行苗线区域中的中线散点,即图4中所示出的白色散点。
然后,从图4所示出的像素点选择2个目标像素点。如图5所示,为本申请实施例提供的一种获取的目标像素点的示意图。
参考图5,可以看出,对于拍摄的3行农作物,可以确定每一行农作物所包括的2个目标像素点,如图中所示的目标像素点m1、m2;目标像素点n1、n2;以及目标像素点p1、p2。
需要说明的是,每一行农作物的2个目标像素点可以是拍摄的该行农作物的三等分的像素点,也可以是拍摄的该行农作物的中点和四等分点,还可以是该行农作物上的任意像素点,不予限制。
s220,将所述每一行农作物包括的m个目标像素点的图像坐标转换为所述每一行农作物包括的m个平面目标坐标。
本申请实施例中,上述图5中所示出的目标像素点m1、m2;目标像素点n1、n2;以及目标像素点p1、p2这6个目标像素点的图像坐标即为基于该图建立的坐标系上的坐标,m个平面坐标即为农机行驶在地面上的坐标。
s230,将转换后的所述每一行农作物的m个平面目标坐标所对应的坐标点连接形成的n条线识别为所述农机行驶过程中的苗线。
本申请实施例中,对于目标像素点m1、m2转换后的平面目标坐标所对应的坐标点连接形成的线即为农机行驶过程中的一个苗线,对于目标像素点n1、n2转换后的平面目标坐标所对应的坐标点连接形成的线即为农机行驶过程中的另一个苗线,对于目标像素点p1、p2转换后的平面目标坐标所对应的坐标点连接形成的线即为农机行驶过程中的再一个苗线。农机可以基于这3条苗线的方向行驶,可以避免对农作物的损坏。
本申请提供的方案,通过对农机行驶过程中利用单目摄像头获得的图像中的每一行农作物包括的m个目标像素点进行转换,将其转换为每一行农作物包括的m个平面目标坐标,并将转换后的每一行农作物的m个平面目标坐标所对应的坐标点连接形成的n条线识别为农机行驶过程中的苗线,可以在降低成本的前提下识别苗线,而且识别的该苗线可以不受农机行驶过程中由于参数的变化的影响,有效的提高了苗线识别的准确率,从而使得农机可以按照识别的苗线方向行驶,可以避免对农作物的损坏。
可选地,在一些实施例中,所述将每一行农作物包括的m个目标像素点的图像坐标转换为所述每一行农作物包括的m个平面目标坐标,包括:
结合所述单目摄像头的一组动态参数的k种不同取值,将所述每一行农作物所包括的m个目标像素点中的每一个像素点的图像坐标转换为k个平面坐标,以获得所述每一行农作物所包括的m个目标像素点的k组平面坐标,k为大于或等于2的整数;
基于预设规则从所述k组平面坐标中选择所述每一行农作物包括的m个平面目标坐标。
可选地,在一些实施例中,所述预设规则为使得识别的所述n行农作物中相邻行的农作物的苗线的斜率的差值最小和/或间距的差值最小。
本申请实施例中,可以结合单目摄像头的一组动态参数的k种不同取值,对m个目标像素点中的每一个像素点的图像坐标进行转换。可以理解的是,由于该动态参数包括k种不同的取值,因此,基于其转换后获得的m个目标像素点中的每一个像素点的平面坐标也相应地包括多种坐标。
示例性地,假设该动态参数包括3个动态参数(即为本申请中的一组参数),该组参数的取值可以包括4种不同的数值(分别为第一组参数数值、第二组参数数值、第三组参数数值以及第四组参数数值)。对于每一组动态参数,均可以基于其对m个目标像素点中的每一个像素点的图像坐标进行转换。因此,对于每一个目标像素点,其转换后的平面坐标也包括4个不同的坐标,这样,可以获得每一行农作物所包括的2个目标像素点的4组平面坐标。然后,基于预设规则从这4组平面坐标中选择出一组平面坐标作为平面目标坐标。
具体地,假设该动态参数包括α、β、γ这3个动态参数,这3个动态参数取不同的数值,则每一行所包括的2个目标像素点中的每一个像素点的图像坐标转换后的平面坐标不同。
假设α、β、γ取值分别为α1、β1、γ1,则每一行所包括的2个目标像素点(即第一行包括目标像素点m1,m2;第二行包括目标像素点n1,n2;第三行包括目标像素点p1,p2)中的每一个像素点的图像坐标转换后的平面坐标依次分别为m1’,m2’;n1’,n2’;p1’,p2’。
假设α、β、γ取值分别为α2、β2、γ2,则每一行所包括的2个目标像素点(即第一行包括目标像素点m1,m2;第二行包括目标像素点n1,n2;第三行包括目标像素点p1,p2)中的每一个像素点的图像坐标转换后的平面坐标依次分别为m1”,m2”;n1”,n2”;p1”,p2”。
假设α、β、γ取值分别为α3、β3、γ3,则每一行所包括的2个目标像素点(即第一行包括目标像素点m1,m2;第二行包括目标像素点n1,n2;第三行包括目标像素点p1,p2)中的每一个像素点的图像坐标转换后的平面坐标依次分别为m1”’,m2”’;n1”’,n2”’;p1”’,p2”’。
在上述α、β、γ这3个动态参数的不同取值情况下,每一行农作物包括的2个目标像素点中的每一个像素点的图像坐标转换后的平面坐标不同。基于这3种情况下获得的不同平面坐标,分别计算每一行的直线方程,以及计算每一种情况下计算的相邻线之间的方向差和间距差,并从中选择方向差和/或间距差最小的所对应的平面坐标为转换后的平面目标坐标。
本申请提供的方案,通过结合所述单目摄像头的一组动态参数的k种不同取值,将所述每一行农作物包括的m个目标像素点中的每一个像素点的图像坐标转换为k个平面坐标,并基于预设规则从所述k组平面坐标中选择所述每一行农作物包括的m个平面目标坐标,使得识别的苗线可以不受该组动态参数的变化的影响,有效的提高了苗线识别的准确率,从而使得农机可以按照识别的苗线方向行驶,可以避免对农作物的损坏。
可选地,在一些实施例中,所述动态参数包括以下至少一个:
所述单目摄像头的俯角、所述单目摄像头的左右倾斜角、所述单目摄像头距离目标物体的高度。
本申请实施例中的单目摄像头的俯角受农机前后倾斜影响变动,单目摄像头的左右倾斜角受农机左右倾斜影响变动,单目摄像头距离目标物体的高度受农机的行驶变动。其中,该目标物体可以是农作物。
为了便于理解,下文先结合光路图对本申请的方案进行说明。
如图6a所示,为本申请实施例提供的基于垂直拍摄的光路示意图,如图6b所示,为本申请实施例提供的基于平行拍摄的光路示意图,如图6c所示,为本申请实施例提供的基于倾斜拍摄的光路示意图。
参考图6a,在这种情况下,单目摄像头俯角为90°,单目摄像头左右倾斜角为0°,单目摄像头所拍摄的图像实际映射的区域为相似矩形区域,通过安装的单目摄像头距离目标物体的高度与单目摄像头的视角(包括垂直视角和水平视角)即可计算图像坐标所对应的平面坐标。
参考图6b,在这种情况下,单目摄像头俯角为大于0°且小于90°的角度,单目摄像头左右倾斜角为0°,单目摄像头所拍摄的图像实际映射的区域为梯形区域,可以先通过上述图6a的方法计算出虚拟垂直视角g1的映射关系,再根据单目摄像头俯角结合三角函数以及相似关系等可以推导出虚拟垂直视角g1与真实梯形视角g0的映射关系。
参考图6c,在这种情况下,单目摄像头俯角为大于0°且小于90°的角度,单目摄像头左右倾斜角为大于0°且小于90°的角度,单目摄像头所拍摄的图像实际映射的区域为不规则形状区域,可以先通过上述图6b的方法计算出水平梯形视角g0的映射,再结合单目摄像头左右倾斜角并结合两点式直线方程等可以推到出虚拟水平梯形视角g0与真实倾斜不规则视角g的映射关系。
可以理解的是,在农机实际作业过程中,其安装的单目摄像头通常为倾斜拍摄。在这一情况下,可以结合垂直拍摄和水平拍摄来计算倾斜拍摄的坐标转换。
下文将结合具体数值进行说明,详见下文。
首先介绍本申请实施例中所涉及的基础参数,该基础参数为单目摄像头的相关参数,可以包括固定参数和动态参数。
如上文所述,动态参数可以包括:单目摄像头的俯角、单目摄像头的左右倾斜角、以及单目摄像头距离目标物体的高度(即上文中的动态参数α、β、γ)。
单目摄像头的俯角(可以用anglec表示):通常为安装初始值,受农机前后倾斜影响变动;
单目摄像头的左右倾斜角(可以用angletilt表示):通常为0,受农机左右倾斜影响变动;
单目摄像头距离目标物体的高度(可以用height表示):初始为摄像头安装高度,通常设置为1000mm。
此外,基础参数可以包括固定参数,该固定参数可以包括:
单目摄像头的垂直视角(可以用anglev表示):通常设置为50°;
单目摄像头的水平视角(可以用angleh表示):通常设置为95°;
图片分辨率(可以用imagew*imageh表示):可以取640*400。
基于上述基础参数结合公式可以对目标像素点的图像坐标进行坐标转换,具体请参见下文。
单目摄像头下方盲区夹角:anglea=90-anglec-anglev/2;
图像下沿距离单目摄像头的直线距离:i0=height/cos(anglea);
图像垂直映射夹角:angleb=anglea anglec;
图像垂直映射最远范围:maxv=sin(anglev/2)*i0*2;
图像垂直映射宽度:maxh=i0*cos(anglev/2)*tan(angleh/2)*2;
图像下沿距离单目摄像头的水平距离:d0=i0*sin(anglea)。
可选地,在一些实施例中,所述结合所述单目摄像头的一组动态参数的k种不同取值,将所述每一行农作物所包括的m个目标像素点中的每一个像素点的图像坐标转换为k个平面坐标,以获得所述每一行农作物所包括的m个目标像素点的k组平面坐标,包括:
根据以下公式,将所述每一行农作物所包括的m个目标像素点中的每一个像素点的图像坐标转换为k个平面坐标,以获得所述每一行农作物所包括的m个目标像素点的k组平面坐标;
y0=(imageh-topi)/imageh*maxv(1)
sinak'=y0/ik'*sin(anglebk')(3)
ak'=ak'sin(sinak')(4)
gyk'=sinak'*i0k'/sin(90-ak'-angleak')(5)
i2k'=gyk'/sinak'*sin(90 angleak')(6)
gxk'=(lefti-imagew/2)/inagew*maxhk'(7)
gxk'=i2k'/ik'*gxk'(8)
gyk'=gyk' d0k'(9)
tgx0k'=heightk'*sin(angletiltk')(10)
tgy0=0(11)
tgz0k'=heightk'*cos(angletiltk')(12)
tgx1k'=gx*cos(angletiltk')(13)
tgy1k'=gyk'(14)
tgz1k'=gxk'*sin(angletiltk')(15)
rk'=tgz1k'/tgz0k'(16)
tgxk'=(tgx1k' rk'*tgx0k')/(1 rk')(17)
tgyk'=(tgy1k' rk'*tgy0)/(1 rk')(18)
其中,i表示所述m个目标像素点中的第i个目标像素点,i≤m;k'表示所述k组平面目标中的第k'组平面目标,k'≤k;
imagew*imageh表示所述图像的图片分辨率,(topi,lefti)表示所述图像中的第i个目标像素坐标点的坐标值,maxv表示所述图像的垂直映射最远范围,i0k'表示所述动态参数取值为第k'种时所述图像沿距离所述单目摄像头的直线距离,anglebk'表示所述动态参数取值为第k'种时所述图像的垂直映射夹角,angleak'表示所述动态参数取值为第k'种时所述单目摄像头的下方盲区夹角,maxhk'表示所述动态参数取值为第k'种时所述图像的垂直映射宽度,d0k'表示所述动态参数取值为第k'种时所述图像沿距离所述单目摄像头的水平距离,angleck'、angletiltk'、heightk'分别表示所述动态参数取值为第k'种时所述单目摄像头的俯角、左右倾斜角、距离目标物体的高度。
本申请实施例中,上述公式(1)~(9)可以理解为上述图6b中虚拟垂直视角g1与真实梯形视角g0的映射关系,上述(10)~(18)可以理解为上述图6c中虚拟水平梯形视角g0与真实倾斜不规则视角g的映射关系。
示例性地,假设取图像中像素坐标点m1(134,299),m2(231,99);n1(354,299),n2(362,99);p1(570,299),p2(493,99);其中,这六个像素坐标点中,像素坐标点m1和像素坐标点m2这2个像素坐标点可以近似认为在一条直线上,可以记为l1;像素坐标点n1和像素坐标点n2这2个像素坐标点可以近似认为在一条直线上,可以记为l2;像素坐标点p1和坐标点像素p2这2个像素坐标点可以近似认为在一条直线上,可以记为l3。
则通过上述公式(1)~(18),可以计算出这6个像素坐标点映射后的物理平面坐标。
由于单目摄像头的俯角anglec、单目摄像头的左右倾斜角angletilt以及单目摄像头距离目标物体的高度height随着农机的作业而变动,因此,对于不同的anglec、angletilt和height,其映射的平面坐标不同。下文以m=2(即下文中每一行农作物包括2个目标像素点)、k=3(即下文中的动态参数不同取值的三种情况)为例进行说明。
情况一:(即k'=1)
若动态参数anglec=40°、angletilt=-10°、height=900mm,则基于上述公式(1)~(18)可以获得这六个像素坐标点映射后的平面坐标点为m1’(-622,597),m2’(-538,1600);n1’(133,696),n2’(292,1889);p1’(1164,831),p2’(1505,2304)。
情况二:(即k'=2)
若动态参数anglec=40°、angletilt=0°、height=910mm,则基于上述公式(1)~(18)可以获得这六个像素坐标点映射后的平面坐标点为m1”(-704,686),m2”(-597,1805);n1”(129,686),n2”(282,1805);p1”(947,686),p2”(1161,1805)。
情况三:(即k'=3)
若动态参数anglec=40°、angletilt=9°、height=920mm,则基于上述公式(1)~(18)可以获得这六个像素坐标点映射后的平面坐标点为m1”’(-822,790),m2”’(-682,2037);n1”’(129,678),n2”’(275,1740);p1”’(832,595),p2”’(989,1518)。
基于上述3种情况下映射的平面坐标,可以分别计算这3条线(即上述l1、l2、l3)在平面坐标系中的方程。
情况一:动态参数anglec=40°、angletilt=-10°、height=900mm
对于l1:假设其在平面坐标系中的方程为a1’x b1’y c1’=0,则根据上述映射后的平面坐标点m1’(-622,597)和m2’(-538,1600)可得到:
a1’=1600-597=1003;
b1’=-622-(-538)=-84;
c1’=597*(-538-(-622))-(-622)*(1600-597)=674014。
因此,l1在平面坐标系中的方程为1003x-84y 674014=0。该l1的斜率为11.9,对应的角度为85.2°。
对于l2:假设其在平面坐标系中的方程为a2’x b2’y c2’=0,则根据上述映射后的平面坐标点n1’(133,696)和n2’(292,1889)可得到:
a2’=1889-696=1193;
b2’=133-292=-159;
c2’=696*(292-133)-133*(1889-696)=-48005。
因此,l2在平面坐标系中的方程为1193x-159y-48005=0。该l2的斜率为7.5,对应的角度为82.4°。
对于l3:假设其在平面坐标系中的方程为a3’x b3’y c3’=0,则根据上述映射后的平面坐标点p1’(1164,831)和p2’(1505,2304)可得到:
a3’=2304-831=1473;
b3’=1164-1505=-341;
c3’=831*(1505-1164)-1164*(2304-831)=-1431201。
因此,l3在平面坐标系中的方程为1473x-341y-1431201=0。该l3的斜率为4.3,对应的角度为76.9°。
综上所述,l1与l2的方向差为85.2-82.4=2.8°,l2与l3的方向差为82.4-76.9=5.9°;l1与l2之间的距离为761.5,l2与l3之间的距离为1069.5,则l1与l2之间的距离和l2与l3之间的距离的差值为308。
情况二:动态参数anglec=40°、angletilt=0°、height=910mm
对于l1:假设其在平面坐标系中的方程为a1”x b1”y c1”=0,则根据上述映射后的平面坐标点m1”(-704,686)和m2”(-597,1805)可得到:
a1”=1805-686=1119;
b1”=-704-(-597)=-107;
c1”=686*(-597-(-704))-(-704)*(1805-686)=861178。
因此,l1在平面坐标系中的方程为1119x-107y 861178=0。该l1的斜率为10.5,对应的角度为84.5°。
对于l2:假设其在平面坐标系中的方程为a2”x b2”y c2”=0,则根据上述映射后的平面坐标点n1”(129,686)和n2”(282,1805)可得到:
a2”=1805-686=1119;
b2”=129-282=-153;
c2”=686*(282-129)-129*(1805-686)=-39393。
因此,l2在平面坐标系中的方程为1119x-153y-39393=0。该l2的斜率为7.3,对应的角度为82.2°。
对于l3:假设其在平面坐标系中的方程为a3”x b3”y c3”=0,则根据上述映射后的平面坐标点p1”(947,686)和p2”(1161,1805)可得到:
a3”=1805-686=1189;
b3”=947-1161=-214
c3”=686*(1161-947)-947*(1805-686)=-979179。
因此,l3在平面坐标系中的方程为1189x-214y-979179=0。该l3的斜率为5.6,对应的角度为79.9°。
综上所述,l1与l2的方向差为84.5-82.2=2.3°,l2与l3的方向差为82.2-79.9=2.3°;l1与l2之间的距离为848.5,l2与l3之间的距离为858.8,则l1与l2之间的距离和l2与l3之间的距离的差值为10.3。
情况三:动态参数anglec=40°、angletilt=9°、height=920mm
对于l1:假设其在平面坐标系中的方程为a1”’x b1”’y c1”’=0,则根据上述映射后的平面坐标点m1”’(-822,790)和m2”’(-682,2037)可得到:
a1”’=2037-790=1247;
b1”’=-822-(-682)=-140;
c1”’=790*(-682-(-822))-(-822)*(2037-790)=1135634。
因此,l1在平面坐标系中的方程为1247x-140y 1135634=0。该l1的斜率为8.9,对应的角度为83.6°。
对于l2:假设其在平面坐标系中的方程为a2”’x b2”’y c2”’=0,则根据上述映射后的平面坐标点n1”’(129,686)和n2”’(275,1740)可得到:
a2”’=1740-686=1054;
b2”’=129-275=-146;
c2”’=686*(275-129)-129*(1740-686)=-35810。
因此,l2在平面坐标系中的方程为1054x-146y-35810=0。该l2的斜率为7.2,对应的角度为82.1°。
对于l3:假设其在平面坐标系中的方程为a3”’x b3”’y c3”’=0,则根据上述映射后的平面坐标点p1”’(832,595)和p2”’(989,1518)可得到:
a3”’=1518-595=923;
b3”’=832-989=-157;
c3”’=595*(989-832)-832*(1518-595)=-674521。
因此,l3在平面坐标系中的方程为923x-157y-674521=0。该l3的斜率为5.9,对应的角度为80.4°。
综上所述,l1与l2的方向差为83.6-82.1=1.5°,l2与l3的方向差为82.1-80.4=1.7°;l1与l2之间的距离为972.9,l2与l3之间的距离为722.5,则l1与l2之间的距离和l2与l3之间的距离的差值为250.4。
农机自动化驾驶场景下,苗线之间是平行等距的,因此,可以选择方向差最小和线之间的距离差最小的动态参数值。基于上述三种情况,可以看出,上述情况三的方向差最小,情况二的线之间的距离差最小,由于情况二中的方向差相对于情况三来说,其差别相对较小,且情况二中的线之间的距离差最小,因此,可以选择上述情况二中的动态参数(即摄像头俯角anglec=40°、摄像头左右倾斜角angletilt=0°、摄像头距离目标物体高度height=910mm)所对应的平面坐标。
应理解,上述示例中,包括三种情况,在一些实施例中,可以包括更多种情况(如可以包括几十或几百种情况),这样,可以从中选择方向差和线之间的距离差趋近于零的所对应的转换后的平面目标坐标。换句话说,基于上述预设规则所选择的平面目标坐标所对应的目标点连接形成的苗线相互平行,且苗线之间的间距是等距的。
还应理解,上述数值仅为举例说明,还可以为其它数值,不应对本申请造成特别限定。
需要说明的是,本申请的方案应用于农机行驶过程中,单目摄像头可以连续拍摄图像(如1s或2s拍摄一次图像),每次拍摄完成后可以利用上述方案识别苗线,可能每一次计算后识别的苗线所对应的动态参数不同,正因如此,即使农机行驶过程中参数出现了变化,通过上述方案也可以使得识别的苗线可以不受农机行驶过程中由于摄像头的高度、俯角以及左右倾斜角的变化的影响,有效的提高了苗线识别的准确率。
本申请提供的方案,通过结合所述单目摄像头的一组动态参数的k种不同取值,将所述每一行农作物包括的m个目标像素点中的每一个像素点的图像坐标转换为k个平面坐标,并基于预设规则从所述k组平面坐标中选择所述每一行农作物包括的m个平面目标坐标,使得识别的苗线可以不受农机行驶过程中由于摄像头的高度、俯角以及左右倾斜角的变化的影响,有效的提高了苗线识别的准确率,从而使得农机可以按照识别的苗线方向行驶,可以避免对农作物的损坏。
上文结合图1-图6c,详细描述了本申请的方法实施例,下面结合图7,描述本申请的装置实施例,装置实施例与方法实施例相互对应,因此未详细描述的部分可参见前面各部分方法实施例。
图7为本申请实施例提供的一种基于单目摄像头的苗线识别的装置700,该装置700可以包括获取单元710、转换单元720以及识别单元730。
获取单元710,用于在农机行驶过程中,获取所述农机上的单目摄像头拍摄的图像的m个目标像素点,所述m个目标像素点为所述图像中包括的n行农作物中每一行农作物所包括的m个目标像素点;
转换单元720,用于将所述每一行农作物所包括的m个目标像素点的图像坐标转换为所述每一行农作物包括的m个平面目标坐标;
识别单元730,用于将转换后的所述每一行农作物的m个平面目标坐标所对应的坐标点连接形成的n条线识别为所述农机行驶过程中的苗线。
可选地,在一些实施例中,所述n=3。
可选地,在一些实施例中,所述转换单元720进一步用于:
结合所述单目摄像头的一组动态参数的k种不同取值,将所述每一行农作物所包括的m个目标像素点中的每一个像素点的图像坐标转换为k个平面坐标,以获得所述每一行农作物所包括的m个目标像素点的k组平面坐标,k为大于或等于2的整数;
所述装置还包括:
选择单元,用于基于预设规则从所述k组平面坐标中选择所述每一行农作物包括的m个平面目标坐标。
可选地,在一些实施例中,所述预设规则为使得识别的所述n行农作物中相邻行的农作物的苗线的斜率的差值最小和/或间距的差值最小。
可选地,在一些实施例中,所述动态参数包括以下至少一个:
所述单目摄像头的俯角、所述单目摄像头的左右倾斜角、所述单目摄像头距离目标物体的高度。
可选地,在一些实施例中,所述转换单元进一步用于:
根据以下公式,将所述每一行农作物所包括的m个目标像素点中的每一个像素点的图像坐标转换为k个平面坐标,以获得所述每一行农作物所包括的m个目标像素点的k组平面坐标;
y0=(imageh-topi)/imageh*maxv
sinak'=y0/ik'*sin(anglebk')
ak'=ak'sin(sinak')
gyk'=sinak'*i0k'/sin(90-ak'-angleak')
i2k'=gyk'/sinak'*sin(90 angleak')
gxk'=(lefti-imagew/2)/inagew*maxhk'
gxk'=i2k'/ik'*gxk'
gyk'=gyk' d0k'
tgx0k'=heightk'*sin(angletiltk')
tgy0=0
tgz0k'=heightk'*cos(angletiltk')
tgx1k'=gx*cos(angletiltk')
tgy1k'=gyk'
tgz1k'=gxk'*sin(angletiltk')
rk'=tgz1k'/tgz0k'
tgxk'=(tgx1k' rk'*tgx0k')/(1 rk')
tgyk'=(tgy1k' rk'*tgy0)/(1 rk')
其中,i表示所述m个目标像素点中的第i个目标像素点,i≤m;k'表示所述k组平面目标中的第k'组平面目标,k'≤k;
imagew*imageh表示所述图像的图片分辨率,(topi,lefti)表示所述图像中的第i个目标像素坐标点的坐标值,maxv表示所述图像的垂直映射最远范围,i0k'表示所述动态参数取值为第k'种时所述图像沿距离所述单目摄像头的直线距离,anglebk'表示所述动态参数取值为第k'种时所述图像的垂直映射夹角,angleak'表示所述动态参数取值为第k'种时所述单目摄像头的下方盲区夹角,maxhk'表示所述动态参数取值为第k'种时所述图像的垂直映射宽度,d0k'表示所述动态参数取值为第k'种时所述图像沿距离所述单目摄像头的水平距离,angleck'、angletiltk'、heightk'分别表示所述动态参数取值为第k'种时所述单目摄像头的俯角、左右倾斜角、距离目标物体的高度。
可选地,在一些实施例中,所述m=2。
本申请实施例还提供了一种农机,该农机至少包括:单目摄像头,用于拍摄农机行驶过程中作业地块的图像;处理器,用于控制所述单目摄像头并执行本申请的技术方案或部分技术方案。
本申请实施例还提供了一种计算机可读存储介质,用于存储计算机程序。
可选的,该计算机可读存储介质可应用于本申请实施例中的基于单目摄像头的苗线识别的装置,并且该计算机程序使得计算机执行本申请实施例的各个方法中的相应流程,为了简洁,在此不再赘述。
本申请实施例还提供了一种计算机程序产品,包括计算机程序指令。
可选的,该计算机程序产品可应用于本申请实施例中的基于单目摄像头的苗线识别的装置,并且该计算机程序指令使得计算机执行本申请实施例的各个方法中的相应流程,为了简洁,在此不再赘述。
本申请实施例还提供了一种计算机程序。
可选的,该计算机程序可应用于本申请实施例中的基于单目摄像头的苗线识别的装置,当该计算机程序在计算机上运行时,使得计算机执行本申请实施例的各个方法中的相应流程,为了简洁,在此不再赘述。
应理解,本申请实施例的处理器可能是一种集成电路图像处理系统,具有信号的处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(fieldprogrammablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器执行存储器中的指令,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
还应理解,上文对本申请实施例的描述着重于强调各个实施例之间的不同之处,未提到的相同或相似之处可以互相参考,为了简洁,这里不再赘述。
应理解,在本申请实施例中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本申请实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
1.一种基于单目摄像头的苗线识别方法,其特征在于,包括:
在农机行驶过程中,获取所述农机上的单目摄像头拍摄的图像的m个目标像素点,所述m个目标像素点为所述图像中包括的n行农作物中每一行农作物所包括的m个目标像素点;
将所述每一行农作物所包括的m个目标像素点的图像坐标转换为所述每一行农作物包括的m个平面目标坐标;
将转换后的所述每一行农作物的m个平面目标坐标所对应的坐标点连接形成的n条线识别为所述农机行驶过程中的苗线。
2.根据权利要求1所述的方法,其特征在于,所述n=3。
3.根据权利要求1或2所述的方法,其特征在于,所述将每一行农作物所包括的m个目标像素点的图像坐标转换为所述每一行农作物包括的m个平面目标坐标,包括:
结合所述单目摄像头的一组动态参数的k种不同取值,将所述每一行农作物所包括的m个目标像素点中的每一个像素点的图像坐标转换为k个平面坐标,以获得所述每一行农作物所包括的m个目标像素点的k组平面坐标,k为大于或等于2的整数;
基于预设规则从所述k组平面坐标中选择所述每一行农作物包括的m个平面目标坐标。
4.根据权利要求3所述的方法,其特征在于,所述预设规则为使得识别的所述n行农作物中相邻行的农作物的苗线的斜率的差值最小和/或间距的差值最小。
5.根据权利要求3或4所述的方法,其特征在于,所述动态参数包括以下至少一个:
所述单目摄像头的俯角、所述单目摄像头的左右倾斜角、所述单目摄像头距离目标物体的高度。
6.根据权利要求3至5中任一项所述的方法,其特征在于,所述结合所述单目摄像头的一组动态参数的k种不同取值,将所述每一行农作物所包括的m个目标像素点中的每一个像素点的图像坐标转换为k个平面坐标,以获得所述每一行农作物所包括的m个目标像素点的k组平面坐标,包括:
根据以下公式,将所述每一行农作物所包括的m个目标像素点中的每一个像素点的图像坐标转换为k个平面坐标,以获得所述每一行农作物所包括的m个目标像素点的k组平面坐标;
y0=(imageh-topi)/imageh*maxv
sinak'=y0/ik'*sin(anglebk')
ak'=ak'sin(sinak')
gyk'=sinak'*i0k'/sin(90-ak'-angleak')
i2k'=gyk'/sinak'*sin(90 angleak')
gxk'=(lefti-imagew/2)/inagew*maxhk'
gxk'=i2k'/ik'*gxk'
gyk'=gyk' d0k'
tgx0k'=heightk'*sin(angletiltk')
tgy0=0
tgz0k'=heightk'*cos(angletiltk')
tgx1k'=gx*cos(angletiltk')
tgy1k'=gyk'
tgz1k'=gxk'*sin(angletiltk')
rk'=tgz1k'/tgz0k'
tgxk'=(tgx1k' rk'*tgx0k')/(1 rk')
tgyk'=(tgy1k' rk'*tgy0)/(1 rk')
其中,i表示所述m个目标像素点中的第i个目标像素点,i≤m;k'表示所述k组平面目标中的第k'组平面目标,k'≤k;
imagew*imageh表示所述图像的图片分辨率,(topi,lefti)表示所述图像中的第i个目标像素坐标点的坐标值,maxv表示所述图像的垂直映射最远范围,i0k'表示所述动态参数取值为第k'种时所述图像沿距离所述单目摄像头的直线距离,anglebk'表示所述动态参数取值为第k'种时所述图像的垂直映射夹角,angleak'表示所述动态参数取值为第k'种时所述单目摄像头的下方盲区夹角,maxhk'表示所述动态参数取值为第k'种时所述图像的垂直映射宽度,d0k'表示所述动态参数取值为第k'种时所述图像沿距离所述单目摄像头的水平距离,angleck'、angletiltk'、heightk'分别表示所述动态参数取值为第k'种时所述单目摄像头的俯角、左右倾斜角、距离目标物体的高度。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述m=2。
8.一种基于单目摄像头的苗线识别的装置,其特征在于,包括:
获取单元,用于在农机行驶过程中,获取所述农机上的单目摄像头拍摄的图像的m个目标像素点,所述m个目标像素点为所述图像中包括的n行农作物中每一行农作物所包括的m个目标像素点;
转换单元,用于将所述每一行农作物所包括的m个目标像素点的图像坐标转换为所述每一行农作物包括的m个平面目标坐标;
识别单元,用于将转换后的所述每一行农作物的m个平面目标坐标所对应的坐标点连接形成的n条线识别为所述农机行驶过程中的苗线。
9.根据权利要求8所述的装置,其特征在于,所述n=3。
10.根据权利要求8或9所述的装置,其特征在于,所述转换单元进一步用于:
结合所述单目摄像头的一组动态参数的k种不同取值,将所述每一行农作物所包括的m个目标像素点中的每一个像素点的图像坐标转换为k个平面坐标,以获得所述每一行农作物所包括的m个目标像素点的k组平面坐标,k为大于或等于2的整数;
所述装置还包括:
选择单元,用于基于预设规则从所述k组平面坐标中选择所述每一行农作物包括的m个平面目标坐标。
11.根据权利要求10所述的装置,其特征在于,所述预设规则为使得识别的所述n行农作物中相邻行的农作物的苗线的斜率的差值最小和/或间距的差值最小。
12.根据权利要求10或11所述的装置,其特征在于,所述动态参数包括以下至少一个:
所述单目摄像头的俯角、所述单目摄像头的左右倾斜角、所述单目摄像头距离目标物体的高度。
13.根据权利要求8至12中任一项所述的装置,其特征在于,所述转换单元进一步用于:
根据以下公式,将所述每一行农作物所包括的m个目标像素点中的每一个像素点的图像坐标转换为k个平面坐标,以获得所述每一行农作物所包括的m个目标像素点的k组平面坐标;
y0=(imageh-topi)/imageh*maxv
sinak'=y0/ik'*sin(anglebk')
ak'=ak'sin(sinak')
gyk'=sinak'*i0k'/sin(90-ak'-angleak')
i2k'=gyk'/sinak'*sin(90 angleak')
gxk'=(lefti-imagew/2)/inagew*maxhk'
gxk'=i2k'/ik'*gxk'
gyk'=gyk' d0k'
tgx0k'=heightk'*sin(angletiltk')
tgy0=0
tgz0k'=heightk'*cos(angletiltk')
tgx1k'=gx*cos(angletiltk')
tgy1k'=gyk'
tgz1k'=gxk'*sin(angletiltk')
rk'=tgz1k'/tgz0k'
tgxk'=(tgx1k' rk'*tgx0k')/(1 rk')
tgyk'=(tgy1k' rk'*tgy0)/(1 rk')
其中,i表示所述m个目标像素点中的第i个目标像素点,i≤m;k'表示所述k组平面目标中的第k'组平面目标,k'≤k;
imagew*imageh表示所述图像的图片分辨率,(topi,lefti)表示所述图像中的第i个目标像素坐标点的坐标值,maxv表示所述图像的垂直映射最远范围,i0k'表示所述动态参数取值为第k'种时所述图像沿距离所述单目摄像头的直线距离,anglebk'表示所述动态参数取值为第k'种时所述图像的垂直映射夹角,angleak'表示所述动态参数取值为第k'种时所述单目摄像头的下方盲区夹角,maxhk'表示所述动态参数取值为第k'种时所述图像的垂直映射宽度,d0k'表示所述动态参数取值为第k'种时所述图像沿距离所述单目摄像头的水平距离,angleck'、angletiltk'、heightk'分别表示所述动态参数取值为第k'种时所述单目摄像头的俯角、左右倾斜角、距离目标物体的高度。
14.根据权利要求8至13中任一项所述的装置,其特征在于,所述m=2。
15.一种农机,其特征在于,包括:
单目摄像头,用于拍摄农机行驶过程中作业地块的图像;
处理器,用于控制所述单目摄像头并执行如权利要求1至7中任一项所述的方法。
16.一种计算机可读存储介质,其特征在于,包括计算机程序,当其在计算机设备上运行时,使得所述计算机设备中的处理单元执行如权利要求1至7中任一项所述的方法。
技术总结