Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

感谢大佬开源,我仔细阅读了论文和项目代码,有几个问题想请教一下 #34

Open
zhaojiankuan opened this issue Aug 24, 2023 · 4 comments

Comments

@zhaojiankuan
Copy link

1、判断两点之间是否有第三点的代码看懂了,但是这么做的原理是什么没想明白,虽然我验证了几组数据这么做是对的。代码在process.py的pass_through_third_point函数
2、struct.py的detemine_point_shape函数,我从代码里读的意思是根据角点倾斜角和两点的倾斜角差来判断角点的类型,但是config里的两个ANGLE_DIFF取值我有点不太懂,请问这块的原理依据是什么呢。

@Teoge
Copy link
Owner

Teoge commented Aug 25, 2023

1、判断两点之间是否有第三点的代码看懂了,但是这么做的原理是什么没想明白,虽然我验证了几组数据这么做是对的。代码在process.py的pass_through_third_point函数

原理是通过方向向量的点积大小判断是否同向。具体来说,设第一点,第二点,第三点为 $P_1$$P_2$$P_3$,如果$\frac{P_1 P_3}{|P_1 P_3|} \cdot \frac{P_3 P_2}{|P_3 P_2|} > 0.8$,表示向量 $P_1 P_3$$P_3 P_2$ 方向基本一致,说明 $P_1 P_2$ 经过 $P_3$

2、struct.py的detemine_point_shape函数,我从代码里读的意思是根据角点倾斜角和两点的倾斜角差来判断角点的类型,但是config里的两个ANGLE_DIFF取值我有点不太懂,请问这块的原理依据是什么呢。

BRIDGE_ANGLE_DIFFSEPARATOR_ANGLE_DIFF 是人工设置的两个阈值,分别用于判断 entrance-line 和 separating-line 方向的方向向量方向是否一致。原理是通过统计数据集中 marking-point 朝向的最大 diff,加上模型预测误差得到两个角度阈值。

@zhaojiankuan
Copy link
Author

感谢大佬解答,通过向量判断方向这个数学基础不够的确实想不到,经大佬这么一解释瞬间就通了。
第二点我看代码大致能看懂是类似入口线和分割线角度差的计算,这样的方式判断车位角点是个好办法。我理解的入口线和分割线角度差90°,那么他们朝向的差应该是π/2,config里那两个diff算成角度是13°和24°,所以才会感觉取值有点不太懂,虽然这是算出来的。请问这是我理解的有问题吗,diff不是角度差是别的。

@Teoge
Copy link
Owner

Teoge commented Aug 31, 2023

这两个 diff 不是入口线和分割线的角度差,它们分别是用于判断入口线和分割线方向向量方向是否一致的阈值。
如果一个 predicted 入口线方向向量和 ground truth 入口线方向向量的夹角 < BRIDGE_ANGLE_DIFF,我们认为 predicted 入口线方向和 ground truth 入口线方向一致。
同理,如果一个 predicted 分割线方向向量和 ground truth 分割线方向向量的夹角 < SEPARATOR_ANGLE_DIFF,我们认为 predicted 分割线方向和 ground truth 分割线方向一致。

@zhaojiankuan
Copy link
Author

感谢大佬解答,我在代码里看到了向量顺时针逆时针旋转的操作,理解了DIFF是个类似误差范围的意思。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants