一种基于光流的无人机仿生智能避障方法与流程

文档序号:11827433阅读:446来源:国知局
一种基于光流的无人机仿生智能避障方法与流程
本发明涉及一种单目视觉的基于光流的无人机智能仿生避障方法,特别是属于人工智能以及计算机视觉领域。
背景技术
:无人机是一种由动力驱动、可以按照预定义轨迹自主控制飞行或者通过远程遥控实时操控的飞行器。在军事和城市应用中越来越广泛,但在实际应用中大都依赖专业操作人员实时遥控,使用成本居高不下,反应速度慢,并且受制于通信信道的传输质量。因此亟需无人机具有自主避障的能力来识别并规避障碍物,使无人机能及时准确地到达目标位置,完成预定的功能。避障技术的效率和精度直接决定了自动化设备的运行效率。相对于超声波、激光雷达,视觉避障技术更适用于无人机,因为视觉传感器不需要发射装置,接收装置也很简单,可以较好的满足无人机对体积、重量和能耗的要求;并且视觉避障需要发射信号,因此不存在辐射和信号干扰,不会受到地理条件和姿态的限制。无人机负载能力有限,决定了其只能携带轻量级的传感设备和嵌入式计算系统,因此计算能力有限;无人机在三维空间运动且速度很快,任何延时都可能被放大导致错误,因此对实时性要求很高,目前的计算机视觉算法用于实现自主避障有很大的难度。昆虫体形小、重量轻(大脑重量不及十分一毫克且神经元比人类大脑少四个数量级)、神经系统简单,却拥有精确避障的能力。无人机在大小、质量、计算能力、飞行环境等方面与昆虫相似,因此,昆虫视觉导航和避障方法成为国内外的研究重点。国外对昆虫视觉导航及避障机理已做了大量的生物实验,并进行深入研究总结,形成了大量可借鉴的研究成果。澳大利亚昆士兰大学的Srinivasan对蜜蜂飞行进行了多年的研究,得出蜜蜂根据飞行过程中感受到的视觉变化(光流),即视网膜上产生的图像变化来执行速度测定、着陆、避障等各种飞行任务。NicolasFranceschini等研究人员花了数年时间研究苍蝇视觉系统和苍蝇是如何检测并利用光流的,然后在实验的基础上研制出来能够避开障碍物且不断接近目标的轮式机器人“robotmouche”。Srinivasan所在研究小组发现蜜蜂是通过平衡两侧眼睛中光流来调节飞行方向的,因此他们在轮式机器人“Corridor-followingrobot”上安装了一个摄像头和两面镜子来验证光流平衡机制。JohnStowers等人设计了一种基于光流的生物启发式无人机避障算法,并实际试飞测试验证了该算法可用于控制无人机避免走廊中迎面而来的障碍物。FabienExpert和FranckRuffier研发了一款基于光流的蜜蜂空中机器人BeeRobor,重80克、长47厘米且利用24个光电二极管模拟个昆虫复眼,在未知环境无加速度计的情况下,仅仅通过视觉输入即光流来判断自身所处位置,从而控制其沿着高低不平的隧道避障移动。无人机与飞行昆虫面临相似的约束,比如最小限度的能量消耗、超轻的重量、实时快速的控制等。尽管飞行昆虫具有多种传感装备,但它们的行为主要还是受视觉控制,根据视觉反馈来稳定飞行、控制飞行速度、感知深度信息、跟踪目标、着陆、检测自运动和估测距离。目前,对飞行昆虫的行为模式和神经结构已经有了较为清晰的认识,并且在模拟平台以及地面移动机器人上已经有了一些尝试,但是由于无人机的各种资源限制及实验的困难,在无人机上的应用还处于起步阶段,亟需进行深入研究,仍存在着很大的挑战和研究前景,具有很大的科学意义。技术实现要素:本发明的目的在于:克服现有技术的不足,提供了一种基于光流的无人机智能仿生避障方法,针对无人机对重量、实时性等要求,从而实现无人机在未知杂乱环境中实时避障飞行。为了实现上述目的,本发明所采用的技术是一种基于光流的无人机避障方法,如图1所示,该方法是按照以下步骤实现的:步骤1:无人机进行初始化后,控制无人机按照一定高度D、速度V飞行;步骤2:无人机按照控制指令飞行,利用单目摄像头捕获图像帧,根据前后两帧图像I1、I2,利用LK(Lucas-Kanade)方法计算得到光流,过滤噪声光流;步骤3:将图像I2分为边缘、左中、右中三部分,得到图像左中部分Dleft、图像右中部分Dright和图像边缘Dedge,因为处于图像边缘的物体对于无人机避障飞行基本没有影响,所以此处只考虑图像中间部分出现的障碍物;步骤4:计算Dleft、Dright两侧光流水平标量之和,记为LS、RS,LS为Dleft区间光流水平标量之和,RS为Dright区间光流水平标量之和;LS=Σi∈Dleft|vi_x|,RS=Σi∈Dright|vi_x|]]>其中,|vi_x|为第i个像素点光流水平标量;i表示图像中第i个像素,x表示光流水平标量方向;步骤5:通过SVM对训练集中的图像特征进行训练,得到大型障碍物分类器检测前方是否为大型障碍物,即SVM大型障碍物分类器;提取图像光流特征,带入SVM分类器,根据分类结果分别判定Dleft、Dright是否为大型障碍物;大型障碍物是指无人机搭载的摄像头捕获的图像帧中,障碍物所占图像面积比较大,如果无人机距离障碍物很近时,障碍物基本占了整个图像帧,这时无人机需要旋转角度避开障碍物,此时的障碍物则为大型障碍物;步骤6:如果Dleft为大型障碍物,Dright不是大型障碍物,则控制无人机向右旋转R度;如果Dright为大型障碍物,Dleft不是大型障碍物,则控制无人机向左旋转角度R,转向步骤2;步骤7:如果Dleft、Dright均为大型障碍物,若LS>RS,说明无人机前方为大型障碍物,且无人机当前姿态下离左侧更近,则控制无人机向右旋转角度krR,反之控制无人机向左旋转角度krR,必须满足kr>1,kr为旋转量比例系数,因为无人机前方为大型障碍物时,避障需要旋转量比一侧为障碍物时的避障旋转量大,kr>1,转向步骤2;步骤8:如果左右两侧均不为大型障碍物,计算图像每个像素点的TTC值,求每列TTC之和TTCcol以及平均TTCavg,对每列进行标记0和1,0代表free,指无障碍物区间,即无人机可以飞行的区间,1代表obstacle,指有障碍物区间,即无人机需要避开的区间,标记准则为:0TTCcol>TTCavg1TTCcol≤TTCavg;]]>标记完成后,再对free和obstacle区间进行插值;步骤9:找出free的最大连通区间[freeleft,freeright],如果free区间整体在图像左侧区间,则控制无人机向左侧平移T;如果均在图像右侧的区间,则控制无人机向右平移T,其中,km为比例系数,用于调节无人机左右平移量,转向步骤2;mid=width2]]>T=(mid-freeleft+freeright2)(3/width)*kmfreeright<3width(freeleft+freeright2-mid)(3/width)*kmfreeleft>3width]]>其中,width为图像的宽度;步骤10:如果free区间整体不在图像左侧或右侧,则根据左右光流平衡策略控制无人机飞行,无人机运动方向和旋转量rotation由下述公式确定,转向步骤2;free区间表示图像中连续标记为0的区间,即无障碍物区间,gostraight1k<RSLS<kturnleftRSLS>kturnrightRSLS<1k]]>rotation=kd×|RS-LS|RS+LS]]>其中,k用于调节光流平衡策略的敏感度,kd为比例系数,用于调节无人机左右旋转量。所述步骤(2)中控制无人机飞行时采用PID控制。所述步骤(2)中单目摄像头为无人机前置摄像头,即安装在无人机正前方,用于捕获无人机前方环境的图像帧,单目摄像头分辨率大于640×320。所述步骤(2)中LK方法计算得到的光流为稠密光流场,能够得到所有像素点的光流;此处计算光流不局限于LK方法,Horn-Schunck(HS)方法也可以。所述步骤(2)中过滤噪声光流方法采用阈值过滤和窗口平滑过滤两步,阈值过滤会过滤光流大于某一阈值的所有光流,认为大光流是由于噪声点产生的;窗口平滑过滤则会将图像分为n×n的窗口,计算窗口平均光流vavg,过滤大于k×vavg的光流。所述步骤(3)中,具体图像分割如下:设整幅图像大小为(0,0)到(1,1),则(Kedge,Kedge)到为图像左中部分Dleft,到(1-Kedge,1-Kedge)为图像右中部分Dright,其余为图像边缘Dedge,其中Kedge为图像长宽的比例系数,用于分割图像边缘和图像左中、图像右中三部分,所述步骤(5)中通过SVM进行训练得到大型障碍物分类器过程为:将图像左中部Dleft、图像右中部Dright以图像中线为界分为上下两部分,即分为2×2分为4个区域;整体光流和为4个区域的某一区域中每个像素点光流标量之和,即水平方向光流标量与垂直方向光流标量的平方和开根,水平光流和为4个区域的某一区域中每个像素点水平方向光流标量之和;每帧图像提取8个属性,为每帧图像分为2×2分为4部分,每部分提取整体光流和与水平光流和两个属性,共8个属性;训练集人工标记每帧图像是否为大型障碍物,大型障碍物标记为1,非大型障碍物可以直线飞行,无需避障标记为-1,训练集中8个属性标准化到[0,1]之间,训练得到SVM分类器。所述步骤(6)中,遇到一侧为大型障碍物时,无人机旋转R之后再进行探测前方是否为无障碍区间,是否可以行走,其中1<R<7,R指无人机进行一次探测旋转的角度,如果需要精确探测,R取值越小越好。所述步骤(6)、(7)中控制无人机旋转一定角度后,转向步骤(2),探测前方是否有障碍物,然后根据相应情况控制无人机避障飞行,但是这个过程中会出现无人机左右摇摆的情况。原因为:比如无人机在当前位置A1和姿态T1下,根据图像帧检测到Dleft为大型障碍物,Dright不是大型障碍物,控制无人机向右旋转R度。无人机旋转R度之后,位置A1姿态T2,检测到Dright为大型障碍物,Dleft不是大型障碍物,则控制无人机向左旋转角度R;无人机向左旋转R度之后,重新回到原来位置A1和姿态T1,仍然会检测到Dleft为大型障碍物,Dright不是大型障碍物,控制无人机向右旋转R度,这样无人机会在位置A1姿态T1和位置A1姿态T2之间循环变化,则会出现无人机左右摇摆的现象,为避免无人机在探测过程中出现左右摇摆现象,则检测如果无人机上一个动作为偏转且与此次偏转方向正好相反,则此次偏转角度为上一次的2倍,如果此次偏转角度大于90度,则恢复角度R。所述步骤(6)、(7)中控制无人机旋转一定角度后,转向步骤(2),探测前方是否有障碍物,然后根据相应情况控制无人机避障飞行,但是这个过程中会出现无人机原路返回的情况。原因为:无人机在当前位置和姿态下根据图像帧检测到Dleft、Dright均为大型障碍物,且LS>RS,控制无人机向右旋转角度krR,假设无人机一直检测到Dleft、Dright均为大型障碍物,且这个过程中LS>RS,这样无人机会一直向右旋转;而当前位置无人机右侧也为大型障碍物,当无人机旋转180度时,表示无人机已经掉头,则前方无障碍物,无人机会原路返回,但是在在这种情况下可能无人机继续向右旋转90度时是前方是没有障碍物的,无人机可以飞行新的避障路线,但是无人机却原路返回了。所述步骤(8)中,对free和obstacle区间进行插值方法为:计算某一free区间大小,记为free,此free区间左右两侧的obstacle区间,记为obsl,obsr,因为free区间为连续标记为0的区间,其左右侧均标记为1,因此free区间左右两侧必为obstacle区间;obstacle区间为连续标记为1的区间;如果free>kf_o(obsl+obsr),则此free区间插值为obstacle区间,即free区间中0均标记为1;计算某一obstacle区间大小,记为obs,此obstacle区间左右两侧的free区间,记为freel,freer,如果obs>ko_f(freel+freer),则此obstacle区间插值为free区间,即obstacle区间中1均标记为0,其中kf_o<ko_f,因为将obstacle区间处理为free区间,会给无人机发送错误的控制命令。所述步骤(9)中比例系数km取值范围为:1<km<5。所述步骤(10)中,即使在步骤(2)中过滤掉噪声光流,在无需避障操作的场景下,左右光流也不可能严格相等,此处引入k用于调节光流平衡策略的敏感度,k的取值为,2<k<6。所述步骤(10)中,比例系数km和kd取值范围0.3<kd<0.5。本发明的优点在于:(1)本发明实现了无人机在未知杂乱环境中避障飞行。无人机有着飞行姿态灵活、操作简易、隐蔽性好等优点,而搭载单目摄像头及相关设备且植入本发明涉及的相关方法的无人机可以在环境复杂的场景下顺利完成任务,特别是有利于无人机低空甚至超低空飞行。因此作为一种崭新的发明技术,它可以应用的领域非常广泛。无人机在飞行时常常会遇到障碍物,特别是低空飞行时,而操作者的视野是有限的。无人机感知到障碍物之后,实现重新路径规划、自主避障,这样可以避免无人机破损甚至坠毁的经济损失;并且无人机在低空飞行时遇到行人、汽车等能够实时自主避障,可以减少因路线规划不当造成不必要的人员伤亡。因此,将会大大提高无人机的安全性能,降低经济损失。(2)本发明基于单目摄像头的具有光流避障能力的无人机的最基本功能就是在复杂环境中可避障飞行。利用这一特点,可使无人机在未知环境中有效的处理各种突发事件,精确执行任务,实现自主飞行,有利于拓宽无人机应用领域。如在城市交通监控、生化污染取样、危险环境中(如火灾或地震)中的搜查和救援等。目前无人机一般只能在高空飞行作业,采集到的信息比较粗糙模糊。本发明可实现无人机实现自主避障,可灵活自如的应对高度不确定的环境变化。这样将有利于无人机实现低空飞行,采集到更加精确全面的信息,从而对可以飞行环境精准把握、判断和决策,并且高空飞行的无人机进入敌军阵地,很容易被雷达等探测器检测到,对其攻击破坏,但是低空飞行的无人机不在雷达的检测范围,隐蔽性好。附图说明图1为本发明无人机避障系统整体流程图;图2为发明中基于光流的PID控制框图;图3为发明基于光流的无人机自主避障方法流程图;图4系统硬件结构图。具体实施方式下面结合附图,对本发明的技术方案作进一步详细说明。图1给出了本发明中涉及的无人机避障系统整体流程图。开始时,无人机启动悬停,判断当前控制指令是否为着陆,如果为着陆指令,则结束。如果不是着陆指令,判断当前控制是否为手动控制,如果为手动控制则直接发送控制命令给无人机,如果为光流控制,则捕获图像帧处理得到相应的控制指令发送给无人机。图2给出了本发明中涉及的无人机控制框图。无人机控制模块通过手动模块和自动模块两部分组成。手动控制模块,直接发送控制指令给无人机控制无人机飞行。自动控制模块,通过单目摄像头捕获图像帧,处理图像帧计算光流控制量,发送给无人机控制无人机避障飞行。其中,控制部分使用PID控制无人机按照指定指令飞行。光流其中利用手动控制和基于光流控制,通过PID控制无人机飞行。图3给出了本发明所涉及的核心算法流程图。无人机初始化,定高飞行,判断当前飞行是否为自主飞行,如果不是自主飞行,则结束。如果为自主飞行,则根据单目摄像头捕获的图像序列,通过计算光流,大型障碍物检测、计算最大free连通区间、左右光流平衡策略来得到控制平移量和旋转量,发送给无人机控制无人机避障飞行。图4给出了本发明中所涉及的硬件系统进行整合搭建,在平台搭建的过程中遵循载重最小原则以保证无人机能够在低空平稳、灵活飞行。无人机搭载的单目摄像头捕获的图像帧通过无人机上的通信模块发送给远程处理器,远程处理器处理视频帧得到控制指令通过通信模块发送给无人机上搭载的飞控板控制无人机避障飞行。如图1所示,本发明基于光流的无人机避障方法的具体实施步骤如下:步骤1):无人机进行初始化,控制无人机按照一定高度D(0.5m-1.2m)、速度V(0.1m/s-0.2m/s)(速度不可设置过大,否则违反光流计算时小运动的假设)飞行。更优选的,为了保证无人机避撞的实时性,使用FPGA+DSP的图像处理系统加快图像计算处理速度,保证实时避撞。步骤2):无人机上搭载的单目摄像头以30fps的速度采集图像序列。将图像序列灰度化,像素处理为640×320。根据前后两帧图像I1、I2,利用LK(Lucas-Kanade)方法计算光流,过滤噪声光流。光流过滤方法采用阈值过滤和窗口平滑过滤两步:1)阈值过滤会过滤光流大于某一阈值的所有光流,认为大光流是由于噪声点产生的;2)窗口平滑过滤则会将图像分为n×n的窗口,计算窗口平均光流vavg,过滤大于k×vavg的光流,此过滤法基于小窗口内光流变化很小(或者基本一致)的假设。更优选的,可以比较多种稠密光流计算方法的避障性能,如LK、HS、LDOF、SIFTFlow、EpicFlow等,选择避障性能佳的光流避障方法。步骤3):将图像I2分为边缘、左中、右中三部分。具体图像分割如下:设整幅图像大小为(0,0)到(1,1),则(Kedge,Kedge)到为图像左中部分Dleft,到(1-Kedge,1-Kedge)为图像右中部分Dright,其余为图像边缘,其中Kedge取步骤4):计算Dleft、Dright两侧光流水平标量之和,记为LS、RS,LS=Σi∈Dleft|vi_x|,RS=Σi∈Dright|vi_x|]]>其中,|vi_x|为第i个像素点光流水平标量。步骤5):分别判定Dleft、Dright是否为大型障碍物。提取光流特征,通过SVM进行训练得到大型障碍物分类器进行检测大型障碍物。检测大型障碍物过程为:1)将图像中部,即(Kedge,Kedge)到(1-Kedge,1-Kedge)之间,按照2×2分为4部分,每部分提取整体光流和与水平光流和,即每张图像提取8个属性;2)训练集人工标记每帧图像是否为大型障碍物,大型障碍物标记为1,非大型障碍物(即可以直线飞行,无需避障)标记为-1;3)训练集中8个属性标准化到[0,1]之间,训练得到SVM分类器;4)将左右两侧各分为4部分,分别提取8个属性,标准化后使用SVM分类器进行测试,得到1为大型障碍物,-1不是大型障碍物。更优选的,可以将图像帧分为更小的块,提取更多的光流特征属性,采用随机森林方法得到各个属性的权值。更优选的,可以采用其他机器学习方法用于大型障碍物检测,如k-means、knn和BP神经网络等。步骤6):如果Dleft为大型障碍物,Dright不是大型障碍物,则控制无人机向右旋转R度;如果Dright为大型障碍物,Dleft不是大型障碍物,则控制无人机向左旋转R度。此处,R=5。转向步骤2。步骤7):如果Dleft、Dright均为大型障碍物,若LS>RS,说明前方为大型障碍物,且无人机当前姿态下离左侧更近,则控制其向右旋转krR度,反之控制其向左旋转krR度。两侧均为大型障碍物则说明无人机面临大型障碍物,需要偏转大的角度才可以避开,因此需要满足kr>1。此处,kr=3。转向步骤2。更优选的,为避免无人机左右摇摆现象,则检测如果无人机上一个动作为偏转且与此次偏转方向正好相反,则此次偏转角度为上一次的2倍,如果此次偏转角度大于90度,则恢复R度。更优选的,为避免无人机沿某一方向连续偏转180度,检测没有障碍物原路返回而没有检测另一测是否有路可走,则在无人机当前位置首次连续偏转160~200度时,即使检测前方可以飞行也忽略继续检测。步骤8):如果左右两侧均不为大型障碍物,则计算图像计算图像每个像素点的TTC值,求每列光流之和TTCcol以及平均TTCavg,对每列进行标记0(free)和1(obstacle):0TTCcol>TTCavg1TTCcol≤TTCavg]]>更优选的,可以通过对多个场景下TTC列和进行整理统计,得到合理且通用的TTC阈值用于标记free和obstacle。步骤9):对free和obstacle区间进行插值。找出最大的连通free区间[freeleft,freeright]。如果free区间整体在图像左侧区间,则控制无人机向左侧平移如果均在图像右侧的区间,则控制无人机向右平移其中,km为比例系数,用于调节无人机左右平移量。转向步骤2。free和obstacle区间插值算法为,计算某一free区间大小(free)和其左右的obstacle区间(obsl,obsr),如果free>kf_o(obsl+obsr),则此free区间插值为obstacle区间。同理,obstacle区间插值为free区间。其中kf_o<ko_f,因为将obstacle区间处理为free区间,会给无人机发送错误的控制命令。更优选的,可以采用其他的插值算法进行插值。步骤10):如果free区间整体不在图像左侧或右侧,则根据左右光流平衡策略控制无人机飞行。无人机运动方向和旋转量rotation由下述公式确定。转向步骤2。gostraight1k<RSLS<kturnleftRSLS>kturnrightRSLS<1k]]>rotation=kd×|RS-LS|RS+LS]]>其中,k用于调节光流平衡策略的敏感度,kd为比例系数,用于调节无人机左右旋转量。光流平衡策略假设的前提是光流是由平移运动引起的,但是实际中旋转也会引起光流变化。更优选的,可以考虑无人机旋转引起的光流变化,得到旋转补偿量。总之,本发明只需额外给无人机装载单目摄像头,然后根据摄像头捕获的前后两帧图像,计算光流并过滤噪声光流,提取光流属性特征通过SVM分类器判断左右两侧是否为大型障碍物,计算TTC得到最大连通free空间,结合左右光流平衡策略得到控制平移量和旋转量,从而引导无人机避障飞行。可以利用本发明所涉及的方法实现无人机在未知杂乱环境中实时避障飞行。本发明能实现无人机在未知杂乱环境中实时避障飞行。最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1