借助AI模型预测障碍物方向

来源:优秀文章 发布时间:2023-04-18 点击:

谢作如 浙江省温州中学

王博伦 上海人工智能实验室

在2017年时,笔者曾和诸暨的李琦老师一起做过一个跨学科学习案例,研究用超声波传感器来识别前方障碍物的方向,并且写了一篇名为《基于距离差的方向跟踪》的文章(刊登在本刊2017年第7期)。这一研究的原理,是利用三角函数的知识,通过障碍物和不同传感器之间的距离来计算出角度。而根据超声波传感器来测量障碍物的方向,可以应用于无人驾驶、目标跟踪等场景。

近年来,有不少义务教育阶段的创客教师与笔者讨论,认为文章列举的案例是很好的学习案例,可惜小学和初中的学生没有学过三角函数,无法进行研究。前段时间复习AI知识,想起神经网络在理论上可以拟合各种曲线,那么,是否可以用一个深层的神经网络来模拟这个计算公式呢?如果可以,即使学生没有学过三角函数,也能用训练模型的方式来完成障碍物角度的计算。有了这个想法后,笔者立刻开始着手验证。

测量障碍物方向的方法有很多。2017年时采用的方法是通过距离差,根据平面几何原理计算出被测物体与观察者正前方视线的水平夹角。如图1所示,障碍物和超声波传感器1、2形成了一个三角形,只要测量出障碍物和超声波传感器1、2的距离(D1和D2这两条边),就能计算障碍物和超声波传感器之间的中点C的夹角α(即方向)。

从图1中可以看出,决定夹角α的变量有三个,除了D1和D2,还有两个超声波之间的距离。为了减少数据量,可以先固定这一距离,那么此问题就可以转换为一个典型的数学回归问题:找出两个输入量和一个输出量之间的关系。我们可以用机器学习的方式,借助现有的真实数据,训练一个AI模型来“推测”出这三个量之间的关系。

图1

现实中有多种方式采集数据。第一种是最真实的,即在障碍物和中点之间拉一条线,然后读取两个超声波传感器的数据,同时测量角度并记录;
或者是拉三条线,因为超声波传感器的数值和真实长度误差是很小的。

当然,因为这一角度是可以用三角函数计算的,那么最方便的数据采集方式莫过于用Python写一段代码,然后将一组数据输出到CSV文件中,或者使用Excel的公式来计算,再导出关键数据,如图2所示。

图2

除了做实地测量外,还有没有其他简便的办法呢?答案当然是有,可以借助geogebra来获取数据。如图3所示,只要画出这个图,用鼠标拖动两个滚动条的圆点,即可看到D1和D2,以及角α的数据在不断变化。可以用100条数据作为训练集,再用20条作为验证集,这样就完成了数据集的整理工作。

图3

这里需要强调一点,因为最后输出的角度是在0~180之间(真实情况会小很多),这和输入的三组数据在数据大小上差距较大,容易导致训练时Loss值不正常,甚至无法收敛,因此最好使用弧度值来训练。通过实际测试可知,只要除以18,把数据范围控制在0~10之间,训练时就很正常。

笔者选择用BaseNN来搭建神经网络。BaseNN是神经网络Python库,延续了MMEdu极简的训练流程和风格,聚焦于基础原理的探究和模型的快速应用。BaseNN类似Keras,只不过底层是Pytorch,初学者用简短的代码即可搭建出各种网络模型,调整神经元的个数、层数、激活方式等。

1.载入数据集(如图4)

图4

2.网络搭建

笔者准备用一个最基础的全连接神经网络来解决这一问题。BaseNN的代码很简洁,几乎类似伪代码。下面的数行代码搭建了一个三层的神经网络,输入维度是3(3列数据),最后输出维度是1(1列数据),隐藏层是30和6,激活函数使用ReLU(如下页图5)。这里的隐藏层的层数和宽度仅用于参考,可以根据具体的情况修改。

图5

笔者绘制了一个神经网络示意图,由于30层画起来密密麻麻,所以仅画出了15层,如图6所示。

图6

3.模型训练

经过多次测试,200轮训练就能够得到较好的效果,程序如图7所示。

图7

4.数据测试

接下来用model.inference函数进行推理,即可得到模型预测的结果,程序如图8所示。

图8

为直观呈现结果,笔者画出了一张对比图(如图9),可以看出,预测结果和真实值几乎一致。

图9

本项目访问地址是https://www.openinnolab.org.cn/pjlab/project?id=639d352b3791ab 1c3aa8b987,“克隆”后即可体验。

通过这一实验,证明了用多层神经网络果然可以训练出一个能够拟合三角函数曲线的AI模型,能够根据距离差来准确预测方向,或者说,验证了“神经网络能拟合任意曲线”这一结论。但是有AI专家表示担忧:这会不会导致神经网络被滥用,明明可以用三角函数精确计算,却偏偏用神经网络来拟合?

这一担心不无道理。但任何一项新技术最开始总会被指责“滥用”,而之后才会发现其实是常态。既然神经网络能够让数学较差或者没学过较复杂公式的孩子,利用采集数据的方式进行“粗略计算”,那么就等同于他们掌握了一种万能工具,不应该以“滥用”的名义进行否认。

当然,真实世界中还存在很多有关联却无法用精确的数学公式来表示的物理量,这在科学研究和工程应用中经常会遇到。那么,用采集数据加上训练模型的方式来“拟合”多种物理量之间的关系,显然是一种有效的解决办法,希望有更多的教师去探索这一领域,让AI成为学生开展科创活动的好帮手,真正培养他们的数据意识和AI思维。

猜你喜欢障碍物超声波神经网络高低翻越动漫界·幼教365(中班)(2020年3期)2020-04-20SelTrac®CBTC系统中非通信障碍物的设计和处理铁道通信信号(2020年9期)2020-02-06神经网络抑制无线通信干扰探究电子制作(2019年19期)2019-11-23蝙蝠的超声波小天使·六年级语数英综合(2018年10期)2018-10-15基于Niosll高精度超声波流量计的研究电子制作(2018年17期)2018-09-28蝙蝠的超声波军事文摘·科学少年(2016年7期)2016-09-20超声波流量计的研究电子制作(2016年21期)2016-05-17基于神经网络的拉矫机控制模型建立重型机械(2016年1期)2016-03-01复数神经网络在基于WiFi的室内LBS应用大连工业大学学报(2015年4期)2015-12-11基于支持向量机回归和RBF神经网络的PID整定海军航空大学学报(2015年4期)2015-02-27推荐访问:障碍物 借助 模型
上一篇:用科幻的眼睛看AI
下一篇:一滴水不干涸的启示

Copyright @ 2013 - 2018 优秀啊教育网 All Rights Reserved

优秀啊教育网 版权所有