我正在尝试将多条线拟合到 2D 中的点列表中。我的分数很低(16 或 32)。
这些点来自机器人的模拟环境,机器人的侧面附有激光测距仪。如果这些点位于一条线上,则意味着它们检测到了墙壁,如果不是,则意味着它们检测到了障碍物。我正在尝试检测墙壁并计算它们的交点,为此我认为最好的办法是在数据集上拟合线。
如果我们知道所有这些点都在一条线上或一条线上,那么将一条线拟合到一组点不是问题。
我的问题是我不知道如何检测哪些点集应该被分类以适合在同一条线上,哪些不应该被分类,对于每条线。另外,我现在连一条线上的点数都不知道,当然最好检测出可能最长的线段。
你将如何解决这个问题?如果我查看所有可能性,例如所有 32 个点的 5 个点组,那么它给出了 32 个选择 5 = 201376 个可能性。我认为尝试所有可能性并尝试为所有 5 元组拟合一条线需要太多时间。
那么什么会是一个更好的算法,它会运行得更快呢?我可以连接限制内的点并创建折线。但即使连接点也是一项艰巨的任务,因为即使在一条直线内边缘距离也会发生变化。
您是否认为可以对具有如此少条目数的离散数据集进行某种霍夫变换?
注意:如果这个问题太难解决,我正在考虑使用传感器的顺序并将其用于过滤。这样算法可能更容易,但如果墙前有一个小障碍物,它会分散线条的连续性,从而将墙分成两半。