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

模型输入point的组织形式 #54

Closed
zhijiejia opened this issue Sep 27, 2021 · 9 comments
Closed

模型输入point的组织形式 #54

zhijiejia opened this issue Sep 27, 2021 · 9 comments
Labels
solved Developers think this issue is already solved

Comments

@zhijiejia
Copy link

请问作者,对于模型前向传播时,输入的point参数的各个维度代表的含义可以稍微解释下吗?

比如,我点了一个点,输入的point的形状是:(2, 2, 3) , 我现在知道了 最后一个维度中包含的是 (y, x, index), 也知道 第二个维度的值是 正样本点的数量的2倍,但是我没看懂为啥第二个维度的值要是2,另外一部分存的是啥啊?(看结果,y值没变,x值变化)
第一维,嘿嘿也没看懂? 为啥是2,这里的含义是什么呢?

感谢您的精彩工作!

@zhijiejia
Copy link
Author

对了 point 里面还有不少的 -1,在这里 -1 代表的是啥意思啊?

@geoyee
Copy link
Member

geoyee commented Sep 28, 2021

请问作者,对于模型前向传播时,输入的point参数的各个维度代表的含义可以稍微解释下吗?

比如,我点了一个点,输入的point的形状是:(2, 2, 3) , 我现在知道了 最后一个维度中包含的是 (y, x, index), 也知道 第二个维度的值是 正样本点的数量的2倍,但是我没看懂为啥第二个维度的值要是2,另外一部分存的是啥啊?(看结果,y值没变,x值变化) 第一维,嘿嘿也没看懂? 为啥是2,这里的含义是什么呢?

感谢您的精彩工作!

  1. 是这样的,第三维的3是对应的(y, x, index)对的,第二维的2为什么是正点的两倍呢?因为这是为了区分正负点,当点一个正点,后面就会有一个(-1, -1, -1)为负点占位;当点一个负点,前面就会有一个(-1, -1, -1)为正点占位。这样在最后只需要len/2,前面一半就是正点,后面一半就是负点。

  2. 关于第一维为什么是2,可以看到这一段代码
    image
    其中有个翻转默认是True,打开的话就有点像测试时增强那样,计算量会变为两倍,所以你发现了y没变,x实际上是翻转了。设置为False的话,点击一个点得到的point维度就是(1, 2, 3)了。

@geoyee geoyee added the solved Developers think this issue is already solved label Sep 28, 2021
@zhijiejia
Copy link
Author

zhijiejia commented Sep 29, 2021

哦哦 谢谢解答,我还有一个问题,那就是 当利用 mask 产生 边界点时,就是找白色区域(255)的边界点,那么如果一个白色区域是两个同心圆的形状,内部圆的内部是黑色,两个圆之间是白色,那么得到的边界点是在一个list里面,那么怎么区分一个边界点是外部圆上的点,哪些点是内部圆上的点呢?

@geoyee
Copy link
Member

geoyee commented Sep 30, 2021

哦哦 谢谢解答,我还有一个问题,那就是 当利用 mask 产生 边界点时,就是找白色区域(255)的边界点,那么如果一个白色区域是两个同心圆的形状,内部圆的内部是黑色,两个圆之间是白色,那么得到的边界点是在一个list里面,那么怎么区分一个边界点是外部圆上的点,哪些点是内部圆上的点呢?

感谢关注。这个边界找点是根据cv2.findContours()来获取的,其中模式设置为cv2.RETR_TREE 就可以建立一个等级树结构的轮廓。每个轮廓有对应的内外轮廓的信息,根据这些信息就可以知道内外轮廓的点。

@zhijiejia
Copy link
Author

作者 您好,我看代码又有个问题想问下,请问放置了所有model的MODELS这个list变量是啥时候,在哪加载的啊, 我尝试调用eiseg 第三方包的API,先创建一个controller, 在对controller 进行setmodel() 但是提示MODELS是None, 看了几圈也没看到MODELS是在哪调用加载的...

@zhijiejia
Copy link
Author

对了,在 eiseg/inference/predictor/base.py 的108行,这句话是不是 少写了一个参数,或者这句话就没啥用

@geoyee
Copy link
Member

geoyee commented Oct 11, 2021

作者 您好,我看代码又有个问题想问下,请问放置了所有model的MODELS这个list变量是啥时候,在哪加载的啊, 我尝试调用eiseg 第三方包的API,先创建一个controller, 在对controller 进行setmodel() 但是提示MODELS是None, 看了几圈也没看到MODELS是在哪调用加载的...

您好,MODELS在manager.py里面

@geoyee
Copy link
Member

geoyee commented Oct 11, 2021

对了,在 eiseg/inference/predictor/base.py 的108行,这句话是不是 少写了一个参数,或者这句话就没啥用

不好意思,是现在的commits的这个位置吗,还是之前的。我现在看到的是num_max_points = max(num_pos_clicks + num_neg_clicks)

@zhijiejia
Copy link
Author

哦哦,是我的问题,我把num_pos_clicks + num_neg_clicks 想成是一个实数了。。。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
solved Developers think this issue is already solved
Projects
None yet
Development

No branches or pull requests

3 participants