使用CNN进行2D路径规划

卷积神经网络(CNN)是解决图像分类、分割、目标检测等任务的流行模型。本文将CNN应用于解决简单的二维路径规划问题。主要使用Python, PyTorch, NumPy和OpenCV。

任务

简单地说,给定一个网格图,二维路径规划就是寻找从给定起点到所需目标位置(目标)的最短路径。机器人技术是路径规划至关重要的主要领域之一。A、D、D* lite 和相关变体等算法就是为解决此类问题而开发的。如今强化学习被广泛用于解决这一问题。本文将尝试仅使用卷积神经网络来解决简单的路径规划实例。

数据集

我们的主要问题是(在机器学习中一如既往)在哪里可以找到数据。虽然没有现成的数据集可用,但是我们可以通过制作随机二维地图创建自己的路径规划数据集。创建地图的过程非常简单:

从一个 100x100 像素的方形空矩阵 M 开始。

对于矩阵中的每一项(像素),从0到1均匀分布抽取一个随机数r。如果 r > diff,则将该像素设置为 1;否则,将其设置为 0。这里的 diff 是一个参数,表示像素成为障碍物(即无法穿越的位置)的概率,它与在该地图上找到可行路径的难度成正比.

然后让我们利用形态学来获得更类似于真实占用网格地图的“块状”效果。通过改变形态结构元素的大小和 diff 参数,能够生成具有不同难度级别的地图。

对于每张地图需要选择 2 个不同的位置:起点 (s) 和终点 (g)。该选择同样是随意的,但这次必须确保 s 和 g 之间的欧几里得距离大于给定阈值(使实例具有挑战性)。

完整文章:

https://avoid.overfit.cn/post/c595e81d1dea445187d17ccfca3cf79b

posted @ 2023-01-26 11:53  deephub  阅读(84)  评论(0编辑  收藏  举报