本申请实施例涉及农业领域,并且更具体地,涉及一种苗线识别的方法、装置和农机。
背景技术:
随着科技的发展,农业机械化越来越趋向于智能化,农业机械自动导航技术是精细农业的关键技术,尤其是农机在田间作业的时候,苗线的识别至关重要。
现有技术中,通过对图像的颜色进行处理,根据形状轮廓、颜色特征识别出农作物,进而识别出苗线进行作业。然而这种方式由于有杂草的颜色和农作物的颜色可能相同导致农机误将杂草识别为农作物,从而降低苗线识别的准确率。
申请内容
本申请提供一种苗线识别的方法、装置和农机,能够提高苗线识别的准确率。
第一方面,提供了一种苗线识别的方法,包括:在农机行驶过程中,将所述农机上的摄像头拍摄的图像输入至预先训练的目标神经网络模型,以获得目标像素点,所述目标像素点包括所述图像中的n行像素点,所述目标神经网络模型通过对预先拍摄的多张图像中的农作物和非农作物加以标注区分训练形成;对所述目标像素点进行划分,以确定所述目标像素点中每一行像素点的m个目标点;将所述目标像素点中每一行像素点上的所述m个目标点连接形成的n条线识别为所述农机行驶过程中的苗线。
本申请提供的方案,基于通过对农作物和杂草加以标注区分预先训练形成的目标神经网络模型,可以获得图像上的目标像素,并根据目标像素可以正确识别农机行驶过程中的苗线,以提高苗线识别的准确率,从而使得农机可以按照识别的苗线方向行驶,可以避免对农作物的损坏。
结合第一方面,在一些可能的实现方式中,m=2。
结合第一方面,在一些可能的实现方式中,包括:
获取所述目标像素点中每一行像素点的中心坐标点;
根据所述每一行像素点的中心坐标点将所述每一行像素点分割为第一像素和第二像素;
分别确定所述第一像素和所述第二像素的坐标平均值;
将所述第一像素和所述第二像素的坐标平均值所对应的点确定为所述每一行像素的2个目标点。
本申请提供的方案,通过对目标像素点中每一行像素点进行二分法处理,并确定第一像素和第二像素的坐标平均值所对应的点确定为每一行像素的2个目标点,可以进一步提高苗线识别的准确率,避免对农作物的损害。
结合第一方面,在一些可能的实现方式中,n=3。
结合第一方面,在一些可能的实现方式中,所述方法还包括:
在所述农机行驶前,所述农机启动导航线,所述导航线为所述农机绘制的虚拟直线;
在所述农机识别到所述苗线后,所述农机停止按照所述导航线进行作业,并开启按照所述苗线进行作业;
在所述农机行驶至地头后,所述农机停止按照所述苗线进行作业,并开启按照所述导航线进行作业。
本申请提供的方案,农机通过切换苗线和导航线进行作业,可以进一步避免对农作物的损坏。
结合第一方面,在一些可能的实现方式中,所述目标神经网络模型包括循环神经网络模型、卷积神经网络模型或递归神经网络模型中的任一种。
结合第一方面,在一些可能的实现方式中,所述方法还包括:
将所述每一行像素点上的所述m个目标点的坐标转换为所述每一行农作物包括的m个平面目标坐标;
将所述目标像素点中每一行像素点上的所述m个目标点连接形成的n条线识别为所述农机行驶过程中的苗线,包括:
将所述每一行农作物包括的所述m个平面目标坐标所对应的坐标点连接形成的n条线识别为所述农机行驶过程中的苗线。
本申请提供的方案,通过将转换后的m个平面目标坐标所对应的坐标点连接形成的n条线识别为所述农机行驶过程中的苗线,可以进一步提高苗线识别的准确率,从而使得农机可以按照识别的苗线方向行驶,可以避免对农作物的损坏。
结合第一方面,在一些可能的实现方式中,所述将所述每一行像素点上的所述m个目标点的坐标转换为所述每一行农作物包括的m个平面目标坐标,包括:
根据以下公式,将所述每一行像素点上的所述m个目标点中的每一个目标点的坐标转换k个平面目标坐标,以获得所述每一行农作物所包括的m个目标点的k组平面坐标;
基于预设规则从所述k组平面坐标中选择所述每一行农作物包括的所述m个平面目标坐标;
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个平面目标坐标所对应的坐标点连接形成的n条线识别为所述农机行驶过程中的苗线,可以使得识别的苗线不受农机行驶过程中由于参数的变化的影响,进一步提高苗线识别的准确率,从而使得农机可以按照识别的苗线方向行驶,可以避免对农作物的损坏。
第二方面,提供了一种苗线识别的装置,包括:
输入单元,用于在农机行驶过程中,将所述农机上的摄像头拍摄的图像输入至预先训练的目标神经网络模型,以获得目标像素点,所述目标像素点包括所述图像中的n行像素点,所述目标神经网络模型通过对预先拍摄的多张图像中的农作物和非农作物加以标注区分训练形成;
确定单元,用于对所述目标像素点进行划分,以确定所述目标像素点中每一行像素点的m个目标点;
识别单元,将所述目标像素点中每一行像素点上的所述m个目标点连接形成的n条线识别为所述农机行驶过程中的苗线。
结合第二方面,在一些可能的实现方式中,m=2。
结合第二方面,在一些可能的实现方式中,所述装置还包括获取单元和分割单元,
所述获取单元用于,获取所述目标像素点中每一行像素点的中心坐标点;
所述分割单元用于,根据所述每一行像素点的中心坐标点将所述每一行像素点分割为第一像素和第二像素;
所述确定单元进一步用于:
分别确定所述第一像素和所述第二像素的坐标平均值;
将所述第一像素和所述第二像素的坐标平均值所对应的点确定为所述每一行像素的2个目标点。
结合第二方面,在一些可能的实现方式中,n=3。
结合第二方面,在一些可能的实现方式中,所述装置还包括控制单元,
所述控制单元用于,在所述农机行驶前,控制所述农机启动导航线,所述导航线为所述农机绘制的虚拟直线;
在所述农机识别到所述苗线后,控制所述农机停止按照所述导航线进行作业,并开启按照所述苗线进行作业;
在所述农机行驶至地头后,控制所述农机停止按照所述苗线进行作业,并开启按照所述导航线进行作业。
结合第二方面,在一些可能的实现方式中,所述目标神经网络模型包括循环神经网络模型、卷积神经网络模型或递归神经网络模型中的任一种。
结合第二方面,在一些可能的实现方式中,所述装置还包括:
转换单元,用于将所述每一行像素点上的所述m个目标点的坐标转换为所述每一行农作物包括的m个平面目标坐标;
所述识别单元进一步用于:
将所述每一行农作物包括的所述m个平面目标坐标所对应的坐标点连接形成的n条线识别为所述农机行驶过程中的苗线。
结合第二方面,在一些可能的实现方式中,所述转换单元进一步用于:
根据以下公式,将所述每一行像素点上的所述m个目标点中的每一个目标点的坐标转换k个平面目标坐标,以获得所述每一行农作物所包括的m个目标点的k组平面坐标;
基于预设规则从所述k组平面坐标中选择所述每一行农作物包括的所述m个平面目标坐标;
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'种时所述摄像头的俯角、左右倾斜角、距离目标物体的高度。
第二方面的有益效果可以参考第一方面的有益效果,在此不再赘述。
第三方面,提供了一种农机,包括:摄像头,用于拍摄农机行驶过程中作业地块的图像;处理器,用于控制所述摄像头并执行第一方面或第一方面的任意可能的实现方式中的方法。
第四方面,提供了一种计算机可读存储介质,包括计算机程序,当其在计算机设备上运行时,使得所述计算机设备中的处理单元执行第一方面或第一方面的任意可能的实现方式中的方法的指令。
第五方面,提供了一种计算机程序产品,包括计算机程序指令,该计算机程序指令使得计算机执行上述第一方面或第一方面的各实现方式中的方法。
第六方面,提供了一种计算机程序,当其在计算机上运行时,使得计算机执行上述第一方面或第一方面的任一可能的实现方式中的方法。
附图说明
图1为本申请实施例的应用场景的示例图。
图2为本申请实施例提供的一种苗线识别的方法的示意性流程图。
图3为本申请实施例提供的一种对农作物和非农作物加以标注的示意图。
图4a为本申请实施例提供的一种识别的苗线区域的示意图。
图4b为本申请实施例提供的一种识别的苗线中线散点的示意图。
图4c为本申请实施例提供的一种识别的苗线的示意图。
图4d为本申请实施例提供的另一种识别的苗线的示意图。
图5为本申请实施例提供的一种苗线识别的装置。
具体实施方式
下面将结合附图,对本申请实施例中的技术方案进行描述。
本申请实施例可以应用在田间作业中,识别作业地块的苗线的位置,使得农机按照苗线的方向行驶。
图1是本申请实施例提供的技术方案的应用场景的示例图。如图1所示,该应用场景中可以包括至少一个农机110和一个摄像头120。在农机110作业行驶过程中,摄像头120采集作业地块的图像,根据采集到的作业地块的图像识别作业地块的苗线的位置。
农机110在行驶过程中,一般会利用农机上的摄像头120抓拍若干张图像,然后通过神经网络等图像识别技术识别图像中苗线的位置。由于有杂草的颜色和农作物的颜色可能相同导致农机误将杂草识别为农作物,从而降低苗线识别的准确率。
本申请基于通过对农作物和杂草加以标注区分预先训练形成的目标神经网络模型,可以获得图像上的目标像素,并根据目标像素可以正确识别农机行驶过程中的苗线,可以提高苗线识别的准确率,从而使得农机可以按照识别的苗线方向行驶,可以避免对农作物的损坏。
下面将结合图2详细描述本申请的苗线识别的方法。
图2是本申请实施例提供的一种苗线识别的方法的示意性流程图。如图2所示,该方法200包括:
s210,在农机行驶过程中,将所述农机上的摄像头拍摄的图像输入至预先训练的目标神经网络模型,以获得目标像素点,所述目标像素点包括所述图像中的n行像素点,所述目标神经网络模型通过对预先拍摄的多张图像中的农作物和非农作物加以标注区分训练形成。
本申请实施例中的目标神经网络模型是通过对预先拍摄的多张图像中的农作物和非农作物加以标注区分训练形成的。其中,该预先拍摄的多张图像可以是针对不同农作物进行拍摄获得的图像,也可以是针对相同农作物进行拍摄获得的图像,对此不作限定。
如图3所示,为本申请实施例提供的一种对农作物和非农作物加以标注的示意图。
参考图3,可以看出,在训练目标神经网络模型的过程中,对于多张预先拍摄的图像,可以利用不同的线条标注农作物和非农作物(如图3中所示的杂草),其中,用白色实线标注农作物,用黑色虚线标注杂草,这样经过训练获得的神经网络模型在识别农机行驶过程中拍摄的图像时,可以正确识别农作物和杂草。
可选地,在一些实施例中,所述目标神经网络模型包括循环神经网络模型、卷积神经网络模型或递归神经网络模型中的任一种。
应理解,上述目标神经网络模型仅为举例说明,还可以为其它网络模型,只要可以识别农作物和杂草的模型均可以应用本申请。
s220,对所述目标像素点进行划分,以确定所述目标像素点中每一行像素点的m个目标点。
本申请实施例中的目标像素点包括图像中的n行像素点,其中n行像素点可以理解为与农机行驶过程中的轨迹所平行的像素点。
可选地,在一些实施例中,所述n=3。
如图4a所示,为本申请实施例提供的一种识别的苗线区域的示意图。如图4b所示,为本申请实施例提供的一种识别的苗线中线散点的示意图。
参考图4a,可以看出,通过利用目标神经网络模型对图像进行识别后,可以识别出苗线区域,即用白色线条环绕的区域;然后再对该苗线区域进行中线处理,即提取每一行苗线区域中的中线散点,即图4b中所示出的白色散点。
s230,将所述目标像素点中每一行像素点上的所述m个目标点连接形成的n条线识别为所述农机行驶过程中的苗线。
本申请提供的方案,基于通过对农作物和杂草加以标注区分预先训练形成的目标神经网络模型,可以获得图像上的目标像素,并根据目标像素可以正确识别农机行驶过程中的苗线,以提高苗线识别的准确率,从而使得农机可以按照识别的苗线方向行驶,可以避免对农作物的损坏。
可选地,在一些实施例中,m=2。
可选地,在一些实施例中,所述对所述目标像素点进行划分,以确定所述目标像素点中每一行像素点的m个目标点,包括:
获取所述目标像素点中每一行像素点的中心坐标点;
根据所述每一行像素点的中心坐标点将所述每一行像素点分割为第一像素和第二像素;
分别确定所述第一像素和所述第二像素的坐标平均值;
将所述第一像素和所述第二像素的坐标平均值所对应的点确定为所述每一行像素的2个目标点。
本申请实施例中,在获得目标像素点后,可以获取每一行像素点的中心坐标点,并根据每一行像素点的中心坐标点将每一行像素点分割为第一像素和第二像素,基于第一像素和第二像素确定每一行像素点的2个目标点。
参考上述图4b,假设目标像素点包括3行像素点,分别为ab段、a1b1段、a2b2段所形成的线条上的像素点,则可以利用二分法识别每一行像素点的2个目标点。
如图4c所示,为本申请实施例提供的一种识别的苗线的示意图。
参考图4c,对于获得的3行像素点,可以先确定每一行像素点的中心坐标点,如图中所示的o、o1、o2点,并根据这3个中心坐标点将这3行像素中的每一行像素划分为第一像素和第二像素。如对于ab段所形成的线条上的像素点,基于中心坐标点o,可以将该行像素划分为oa和ob这两段像素,对于oa段所形成的线条上的像素点,可以先确定该oa段的中心坐标点,假设c点为该oa段的中心坐标点,则c点为该ab段像素上的一个目标点;对于ob段所形成的线条上的像素点,可以先确定该ob段的中心坐标点,假设d点为该ob段的中心坐标点,则d点为该行像素上的另一个目标点。这两个目标点连接形成的直线(即c点和d点连接形成的直线)即为农机行驶过程中的其中一个苗线。
类似地,对于a1b1段所形成的线条上的像素点,基于中心坐标点o1,可以将该行像素划分为o1a1和o1b1这两段像素,对于o1a1段所形成的线条上的像素点,可以先确定该o1a1段的中心坐标点,假设c1点为该o1a1段的中心坐标点,则c1点为该o1a1段像素上的一个目标点;对于o1b1段所形成的线条上的像素点,可以先确定该o1b1段的中心坐标点,假设d1点为该o1b1段的中心坐标点,则d1点为该行像素上的另一个目标点。这两个目标点连接形成的直线(即c1点和d1点连接形成的直线)即为农机行驶过程中的另一个苗线。
类似地,对于a2b2段所形成的线条上的像素点,基于中心坐标点o2,可以将该行像素划分为o2a2和o2b2这两段像素,对于o2a2段所形成的线条上的像素点,可以先确定该o2a2段的中心坐标点,假设c2点为该o2a2段的中心坐标点,则c2点为该o2a2段像素上的一个目标点;对于o2b2段所形成的线条上的像素点,可以先确定该o2b2段的中心坐标点,假设d2点为该o2b2段的中心坐标点,则d2点为该行像素上的另一个目标点。这两个目标点连接形成的直线(即c2点和d2点连接形成的直线)即为农机行驶过程中的另一个苗线。
在确定苗线的位置后,控制装置可以根据识别的苗线方向(即上述cd点连接的直线、c1d1点连接的直线以及c2d2点连接的直线方向)控制农机行驶,从而可以避免对农作物的损害。
需要说明的是,上述示例中是以二分法为例识别农机行驶过程中的苗线的,在一些实施例中,也可以以三分法、四分法等识别农机行驶过程中的苗线,不予限制。
以三分法为例,如图4d所示,为本申请实施例提供的另一种识别的苗线的示意图。
参考图4d,对于获得的3行像素点,可以先确定每一行像素点的三等分坐标点,如图中所示的o和o’、o1和o1’、o2和o2’点,并根据这6个三等分坐标点将这3行像素中的每一行像素划分为第一像素、第二像素和第三像素。如对于ab段所形成的线条上的像素点,基于坐标点o和o’,可以将该行像素划分为ob、oo’和o’a这三段像素,对于o’a段所形成的线条上的像素点,可以先确定该o’a段的中心坐标点,假设c点为该o’a段的中心坐标点,则可以确定c点为该o’a段像素上的一个目标点;对于oo’段所形成的线条上的像素点,可以先确定该oo’段的中心坐标点,假设e点为该oo’段的中心坐标点,则可以确定e点为该oo’段像素上的一个目标点;对于ob段所形成的线条上的像素点,可以先确定该ob段的中心坐标点,假设d点为该ob段的中心坐标点,则可以确定d点为该行像素上的另一个目标点。这三个目标点连接形成的直线(即c点、d点和e点连接形成的直线)即为农机行驶过程中的其中一个苗线。
类似地,对于a1b1段所形成的线条上的像素点,基于坐标点o1和o1’,可以将该行像素划分为o1b1、o1o1’和o1’a1这三段像素,对于o1’a1段所形成的线条上的像素点,可以先确定该o1’a1段的中心坐标点,假设c1点为该o1’a1段的中心坐标点,则可以确定c1点为该o1’a1段像素上的一个目标点;对于o1o1’段所形成的线条上的像素点,可以先确定该o1o1’段的中心坐标点,假设e1点为该o1o1’段的中心坐标点,则可以确定e1点为该o1o1’段像素上的一个目标点;对于o1b1段所形成的线条上的像素点,可以先确定该o1b1段的中心坐标点,假设d1点为该o1b1段的中心坐标点,则可以确定d1点为该行像素上的另一个目标点。这三个目标点连接形成的直线(即c1点、d1点和e1点连接形成的直线)即为农机行驶过程中的其中一个苗线。
类似地,对于a2b2段所形成的线条上的像素点,基于坐标点o2和o2’,可以将该行像素划分为o2b2、o2o2’和o2’a2这三段像素,对于o2’a2段所形成的线条上的像素点,可以先确定该o2’a2段的中心坐标点,假设c2点为该o2’a2段的中心坐标点,则可以确定c2点为该o2’a2段像素上的一个目标点;对于o2o2’段所形成的线条上的像素点,可以先确定该o2o2’段的中心坐标点,假设e2点为该o2o2’段的中心坐标点,则可以确定e2点为该o2o2’段像素上的一个目标点;对于o2b2段所形成的线条上的像素点,可以先确定该o2b2段的中心坐标点,假设d2点为该o2b2段的中心坐标点,则可以确定d2点为该行像素上的另一个目标点。这三个目标点连接形成的直线(即c2点、d2点和e2点连接形成的直线)即为农机行驶过程中的其中一个苗线。
在确定苗线的位置后,控制装置可以根据识别的苗线方向(即上述cde点连接的直线、c1d1e1点连接的直线以及c2d2e2点连接的直线方向)控制农机行驶,从而可以避免对农作物的损害。
此外,上述实施例中是以3行像素点为例进行说明的,在一些实施例中,也可以基于4行或5行像素点等进行苗线识别,不予限制。
本申请提供的方案,通过对目标像素点中每一行像素点进行二分法处理,并确定第一像素和第二像素的坐标平均值所对应的点确定为每一行像素的2个目标点,可以进一步提高苗线识别的准确率,避免对农作物的损害。
可选地,在一些实施例中,所述方法200还包括:
在所述农机行驶前,所述农机启动导航线,所述导航线为所述农机绘制的虚拟直线;
在所述农机识别到所述苗线后,停止按照所述导航线进行作业,并开启按照所述苗线进行作业;
在所述农机行驶至地头后,停止按照所述苗线进行作业,并开启按照所述导航线进行作业。
本申请实施例中,在农机开始准备作业时,由于此时并没有识别到的苗线,可以先基于绘制的导航线进行作业,在作业一段时间并识别到苗线后,可以开启按照苗线进行作业;在农机行驶至地头后,由于此时难以识别苗线,可能会使得农机与原定路线有较大偏离,因此可以停止按照苗线进行作业,并开启按照导航线进行作业。
可以理解的是,若农作物是按照直线进行种植且生长的,则本申请中的苗线和导航线为同一线条。
本申请提供的方案,农机通过切换苗线和导航线进行作业,可以进一步避免对农作物的损坏。
可选地,在一些实施例中,所述方法还包括:
将所述每一行像素点上的所述m个目标点的坐标转换为所述每一行农作物包括的m个平面目标坐标;
将所述目标像素点中每一行像素点上的所述m个目标点连接形成的n条线识别为所述农机行驶过程中的苗线,包括:
将所述每一行农作物包括的所述m个平面目标坐标所对应的坐标点连接形成的n条线识别为所述农机行驶过程中的苗线。
本申请提供的方案,通过将转换后的m个平面目标坐标所对应的坐标点连接形成的n条线识别为所述农机行驶过程中的苗线,可以进一步提高苗线识别的准确率,从而使得农机可以按照识别的苗线方向行驶,可以避免对农作物的损坏。
为了便于理解下文,首先介绍本申请实施例中所涉及的基础参数,该基础参数为单目摄像头的相关参数,可以包括固定参数和动态参数。
其中,动态参数可以包括:单目摄像头的俯角、单目摄像头的左右倾斜角、以及单目摄像头距离目标物体的高度。
单目摄像头的俯角(可以用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)。
可选地,在一些实施例中,所述将所述每一行像素点上的所述m个目标点的坐标转换为所述每一行农作物包括的m个平面目标坐标,包括:
根据以下公式,将所述每一行像素点上的所述m个目标点中的每一个目标点的坐标转换k个平面目标坐标,以获得所述每一行农作物所包括的m个目标点的k组平面坐标;
基于预设规则从所述k组平面坐标中选择所述每一行农作物包括的所述m个平面目标坐标;
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'种时所述单目摄像头的俯角、左右倾斜角、距离目标物体的高度。
示例性地,假设取图像中像素坐标点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个像素坐标点映射后的物理平面坐标。
在一些实施例中,所述预设规则为使得识别的所述n行农作物中相邻行的农作物的苗线的斜率的差值最小和/或间距的差值最小。
由于单目摄像头的俯角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拍摄一次图像),每次拍摄完成后可以利用上述方案识别苗线,可能每一次计算后识别的苗线所对应的动态参数不同,正因如此,即使农机行驶过程中参数出现了变化,通过上述方案也可以使得识别的苗线可以不受农机行驶过程中由于摄像头的高度、俯角以及左右倾斜角的变化的影响,有效的提高了苗线识别的准确率。
本申请提供的方案,通过结合农机行驶过程中的动态参数,将转换后的m个平面目标坐标所对应的坐标点连接形成的n条线识别为所述农机行驶过程中的苗线,可以使得识别的苗线不受农机行驶过程中由于参数的变化的影响,进一步提高苗线识别的准确率,从而使得农机可以按照识别的苗线方向行驶,可以避免对农作物的损坏。
上文结合图1-图4d,详细描述了本申请的方法实施例,下面结合图5,描述本申请的装置实施例,装置实施例与方法实施例相互对应,因此未详细描述的部分可参见前面各部分方法实施例。
图5为本申请实施例提供的一种苗线识别的装置500,该装置500可以包括输入单元510、确定单元520以及识别单元530。
输入单元510,用于在农机行驶过程中,将所述农机上的摄像头拍摄的图像输入至预先训练的目标神经网络模型,以获得目标像素点,所述目标像素点包括所述图像中的n行像素点,所述目标神经网络模型通过对预先拍摄的多张图像中的农作物和非农作物加以标注区分训练形成。
确定单元520,用于对所述目标像素点进行划分,以确定所述目标像素点中每一行像素点的m个目标点。
识别单元530,将所述目标像素点中每一行像素点上的所述m个目标点连接形成的n条线识别为所述农机行驶过程中的苗线。
可选地,在一些实施例中,m=2。
可选地,在一些实施例中,所述装置500还包括获取单元和分割单元,
所述获取单元用于,获取所述目标像素点中每一行像素点的中心坐标点;
所述分割单元用于,根据所述每一行像素点的中心坐标点将所述每一行像素点分割为第一像素和第二像素;
所述确定单元520进一步用于:
分别确定所述第一像素和所述第二像素的坐标平均值;
将所述第一像素和所述第二像素的坐标平均值所对应的点确定为所述每一行像素的2个目标点。
可选地,在一些实施例中,n=3。
可选地,在一些实施例中,所述装置500还包括控制单元,
所述控制单元用于,在所述农机行驶前,控制所述农机启动导航线,所述导航线为所述农机绘制的虚拟直线;
在所述农机识别到所述苗线后,控制所述农机停止按照所述导航线进行作业,并开启按照所述苗线进行作业;
在所述农机行驶至地头后,控制所述农机停止按照所述苗线进行作业,并开启按照所述导航线进行作业。
可选地,在一些实施例中,所述目标神经网络模型包括循环神经网络模型、卷积神经网络模型或递归神经网络模型中的任一种。
可选地,在一些实施例中,所述装置500还包括:
转换单元,用于将所述每一行像素点上的所述m个目标点的坐标转换为所述每一行农作物包括的m个平面目标坐标;
所述识别单元530进一步用于:
将所述每一行农作物包括的所述m个平面目标坐标所对应的坐标点连接形成的n条线识别为所述农机行驶过程中的苗线。
可选地,在一些实施例中,所述转换单元进一步用于:
根据以下公式,将所述每一行像素点上的所述m个目标点中的每一个目标点的坐标转换k个平面目标坐标,以获得所述每一行农作物所包括的m个目标点的k组平面坐标;
基于预设规则从所述k组平面坐标中选择所述每一行农作物包括的所述m个平面目标坐标;
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'种时所述摄像头的俯角、左右倾斜角、距离目标物体的高度。
本申请实施例还提供了一种农机,该农机至少包括:摄像头,用于拍摄农机行驶过程中作业地块的图像;处理器,用于控制所述摄像头并执行本申请的技术方案或部分技术方案。
本申请实施例还提供了一种计算机可读存储介质,用于存储计算机程序。
可选的,该计算机可读存储介质可应用于本申请实施例中的苗线识别的装置,并且该计算机程序使得计算机执行本申请实施例的各个方法中的相应流程,为了简洁,在此不再赘述。
本申请实施例还提供了一种计算机程序产品,包括计算机程序指令。
可选的,该计算机程序产品可应用于本申请实施例中的苗线识别的装置,并且该计算机程序指令使得计算机执行本申请实施例的各个方法中的相应流程,为了简洁,在此不再赘述。
本申请实施例还提供了一种计算机程序。
可选的,该计算机程序可应用于本申请实施例中的苗线识别的装置,当该计算机程序在计算机上运行时,使得计算机执行本申请实施例的各个方法中的相应流程,为了简洁,在此不再赘述。
应理解,本申请实施例的处理器可能是一种集成电路图像处理系统,具有信号的处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(fieldprogrammablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器执行存储器中的指令,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
还应理解,上文对本申请实施例的描述着重于强调各个实施例之间的不同之处,未提到的相同或相似之处可以互相参考,为了简洁,这里不再赘述。
应理解,在本申请实施例中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本申请实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
1.一种苗线识别的方法,其特征在于,包括:
在农机行驶过程中,将所述农机上的摄像头拍摄的图像输入至预先训练的目标神经网络模型,以获得目标像素点,所述目标像素点包括所述图像中的n行像素点,所述目标神经网络模型通过对预先拍摄的多张图像中的农作物和非农作物加以标注区分训练形成;
对所述目标像素点进行划分,以确定所述目标像素点中每一行像素点的m个目标点;
将所述目标像素点中每一行像素点上的所述m个目标点连接形成的n条线识别为所述农机行驶过程中的苗线。
2.根据权利要求1所述的方法,其特征在于,m=2。
3.根据权利要求2所述的方法,其特征在于,所述对所述目标像素点进行划分,以确定所述目标像素点中每一行像素点的m个目标点,包括:
获取所述目标像素点中每一行像素点的中心坐标点;
根据所述每一行像素点的中心坐标点将所述每一行像素点分割为第一像素和第二像素;
分别确定所述第一像素和所述第二像素的坐标平均值;
将所述第一像素和所述第二像素的坐标平均值所对应的点确定为所述每一行像素的2个目标点。
4.根据权利要求1至3中任一项所述的方法,其特征在于,n=3。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述方法还包括:
在所述农机行驶前,所述农机启动导航线,所述导航线为所述农机绘制的虚拟直线;
在所述农机识别到所述苗线后,所述农机停止按照所述导航线进行作业,并开启按照所述苗线进行作业;
在所述农机行驶至地头后,所述农机停止按照所述苗线进行作业,并开启按照所述导航线进行作业。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述目标神经网络模型包括循环神经网络模型、卷积神经网络模型或递归神经网络模型中的任一种。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述方法还包括:
将所述每一行像素点上的所述m个目标点的坐标转换为所述每一行农作物包括的m个平面目标坐标;
将所述目标像素点中每一行像素点上的所述m个目标点连接形成的n条线识别为所述农机行驶过程中的苗线,包括:
将所述每一行农作物包括的所述m个平面目标坐标所对应的坐标点连接形成的n条线识别为所述农机行驶过程中的苗线。
8.根据权利要求7所述的方法,其特征在于,所述将所述每一行像素点上的所述m个目标点的坐标转换为所述每一行农作物包括的m个平面目标坐标,包括:
根据以下公式,将所述每一行像素点上的所述m个目标点中的每一个目标点的坐标转换k个平面目标坐标,以获得所述每一行农作物所包括的m个目标点的k组平面坐标;
基于预设规则从所述k组平面坐标中选择所述每一行农作物包括的所述m个平面目标坐标;
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'种时所述摄像头的俯角、左右倾斜角、距离目标物体的高度。
9.一种苗线识别的装置,其特征在于,包括:
输入单元,用于在农机行驶过程中,将所述农机上的摄像头拍摄的图像输入至预先训练的目标神经网络模型,以获得目标像素点,所述目标像素点包括所述图像中的n行像素点,所述目标神经网络模型通过对预先拍摄的多张图像中的农作物和非农作物加以标注区分训练形成;
确定单元,用于对所述目标像素点进行划分,以确定所述目标像素点中每一行像素点的m个目标点;
识别单元,将所述目标像素点中每一行像素点上的所述m个目标点连接形成的n条线识别为所述农机行驶过程中的苗线。
10.根据权利要求9所述的装置,其特征在于,m=2。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括获取单元和分割单元,
所述获取单元用于,获取所述目标像素点中每一行像素点的中心坐标点;
所述分割单元用于,根据所述每一行像素点的中心坐标点将所述每一行像素点分割为第一像素和第二像素;
所述确定单元进一步用于:
分别确定所述第一像素和所述第二像素的坐标平均值;
将所述第一像素和所述第二像素的坐标平均值所对应的点确定为所述每一行像素的2个目标点。
12.根据权利要求9至11中任一项所述的装置,其特征在于,n=3。
13.根据权利要求9至12中任一项所述的装置,其特征在于,所述装置还包括控制单元,
所述控制单元用于,在所述农机行驶前,控制所述农机启动导航线,所述导航线为所述农机绘制的虚拟直线;
在所述农机识别到所述苗线后,控制所述农机停止按照所述导航线进行作业,并开启按照所述苗线进行作业;
在所述农机行驶至地头后,控制所述农机停止按照所述苗线进行作业,并开启按照所述导航线进行作业。
14.根据权利要求9至13中任一项所述的装置,其特征在于,所述目标神经网络模型包括循环神经网络模型、卷积神经网络模型或递归神经网络模型中的任一种。
15.根据权利要求9至14中任一项所述的装置,其特征在于,所述装置还包括:
转换单元,用于将所述每一行像素点上的所述m个目标点的坐标转换为所述每一行农作物包括的m个平面目标坐标;
所述识别单元进一步用于:
将所述每一行农作物包括的所述m个平面目标坐标所对应的坐标点连接形成的n条线识别为所述农机行驶过程中的苗线。
16.根据权利要求15所述的装置,其特征在于,所述转换单元进一步用于:
根据以下公式,将所述每一行像素点上的所述m个目标点中的每一个目标点的坐标转换k个平面目标坐标,以获得所述每一行农作物所包括的m个目标点的k组平面坐标;
基于预设规则从所述k组平面坐标中选择所述每一行农作物包括的所述m个平面目标坐标;
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'种时所述摄像头的俯角、左右倾斜角、距离目标物体的高度。
17.一种农机,其特征在于,包括:
摄像头,用于拍摄农机行驶过程中作业地块的图像;
处理器,用于控制所述摄像头并执行如权利要求1至8中任一项所述的方法。
18.一种计算机可读存储介质,其特征在于,包括计算机程序,当其在计算机设备上运行时,使得所述计算机设备中的处理单元执行如权利要求1至8中任一项所述的方法。
技术总结