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

做实例分割时,36个点的起始问题 #27

Open
zkdfbb opened this issue Nov 10, 2021 · 4 comments
Open

做实例分割时,36个点的起始问题 #27

zkdfbb opened this issue Nov 10, 2021 · 4 comments

Comments

@zkdfbb
Copy link

zkdfbb commented Nov 10, 2021

请问一下,在做实例分割时,36个点的起始点应该选取哪个点?
另外,如果是在边缘上等距离选取点的话,对于一些极值点,例如拐角处的点有可能选取不到,这种情况下该怎么处理呢?
如果更多的点,比如72个点,甚至256个点,用CrossIOULoss的话,是不是很难优化呢?

@Duankaiwen
Copy link
Owner

@zkdfbb 起始点总是选距离物体中轴线最近的上边缘点,然后逆时针走一圈。相关代码在mmdet/datasets/pipelines/loading.py line439: unify_origin_polygon = self.unify_origin_polygon(cw_valid_polygon)。72个点我试过,没问题的,再多了我就没试了,但是我估计问题不大,因为segmentation我是分组约束的,每9个向量为一组计算一组loss。您可以试一下。

@zkdfbb
Copy link
Author

zkdfbb commented Nov 10, 2021

@Duankaiwen 感谢!明白了,我看一下

@zkdfbb
Copy link
Author

zkdfbb commented Nov 11, 2021

@Duankaiwen 麻烦再请问一下,对于下面这种二分类的语义分割
image

由于边缘比较复杂,边界上的点是属于不同物体的,红色部分是背景,比如路面,试了一下用LSNet的方法去回归边界线上的点,取的点数很多,比如128个,采用分组约束最终可视化的效果也几乎和边界线没啥关系,大部分时候就是随便的一个圈,是在训练过程中有什么trick么,还是有可能我用的就不对?而且LSnet是怎么保证最终的点的顺序的呢,像polarmask对这种比较复杂的边缘无法取到所有的点,但至少极坐标下点序是固定的,只回归长度的话似乎比lsnet回归一个完整的向量要容易些

@Duankaiwen
Copy link
Owner

@zkdfbb LSNet中的点也是有顺序的,在训练时,我们规定了起始点总是选距离物体中轴线最近的上边缘点,然后逆时针走一圈。因此,预测时,channel 0对应预测起始点位置,channel 1预测对应起始点的下一个位置 ....依次进行下去。对于这个结果,您先把GT polygan显示一下,我看是什么样的

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