-
Notifications
You must be signed in to change notification settings - Fork 12
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
大佬,请问为什么制作标签的时候要取三分之一?为什么角度限制在-90到90? #10
Comments
请问为什么制作标签的时候要取三分之一? 假设我们要抓某个宽度为W的简单矩形平板物体 数据集中的标注的矩形宽度是抓取时的夹爪张开宽度W_g, W_g肯定是要大于物体的宽度W的, 否则就会发生碰撞 训练时生成的标注是对物体上的较好的可抓取区域进行标注指示, 假设这个区域的宽度是W_q, 那么W_q一般要小于W, 因为较好的抓取肯定是落在该物体较为中心的位置的 基于这个思想, W_q < W < W_g, 但是这三者之间的准确数值关系我们并不知道, 在GGCNN原论文中作者取W_q=W_g/3, 这个是可以调节的,如果你觉得其他参数更合适,应当更大些或者更小些都可以自己改 为什么角度限制在-90到90? 最后一个问题: 关于标注生成的正确性,自己用matplotlib可视化看一下,对照一下坐标检查一下就可以了,建议不要用你这种方法验证. |
角度范围在-90到90倒也能理解,但-180,180的范围应该也不影响吧 最后一个问题知道了,在求quality map里的最大值时,因为标注的是整个矩形框区域都为1,而实际应该取矩形中心点的那个位置为基准,所以我这里验证方法不对。 关于验证这块,我的理解是对预测quality map值最大的那个像素点(原码no_grasp取1,若大于1就是最大的若干个)为抓取中心,解码出对应的抓取框,再和真实标签里的所有矩形抓取框逐一比较。 我现在碰到的问题是,假如真实标签坐标为: |
知道了。。。。在求两角之差时abs((angle_pred-angle_label+ np.pi/2) % np.pi - np.pi/2)转化一下就好了 |
请问这个抓取标签,会存在一个像素点对应不同的角度吧,原文的处理应该是后一个角度直接覆盖前一个角度,宽度也是一样。还有抓取概率是整个矩形框都为1,那预测的时候取概率最大的那个像素点怎么就是抓取中心呢?标签里矩形中心点和矩形内部其他点都一样,网络学习也没法区分出来吧 还有请问你换过用其他大一点的语义分割网络去跑吗?效果怎么样? |
抓取质量监督图指示了某个地方可抓不可抓的概率, 那么预测出来的结果就应当是网络认为对于物体上各处可抓不可抓的概率,我们当然要选择概率最高的地方作为抓取中心,但这种标注方法只有0,1,因此对于不同区域是没有倾向性的,所以你后面看结果会发现大部分的抓取位置并没有落在物体的中心, 我没有试过用其他的网络跑 |
大佬能分享一下代码吗,孩子要哭了 |
请问一下回答中的原论文是指哪篇论文 |
角度范围-180到180不可以吗?为什么求正余弦要对角度的两倍求,直接原角度求正余弦再arctan2反求角度不行吗(前提角度限定范围在-180,180)?
还有刚试了试把标签当作网络输出去验证,不知道为什么都不匹配
`
import torch
import torch.optim as optim
import numpy as np
import matplotlib.pyplot as plt
import cv2
import time
#导入自定义包
from ggcnn import GGCNN
from cornell_pro import Cornell
from functions import post_process,detect_grasps,max_iou
from image_pro import Image
from grasp_pro import Grasp_cpaw
val_data = Cornell('图片标签路径',
random_rotate = True,
random_zoom = True,
output_size = 300)
val_dataset = torch.utils.data.DataLoader(val_data,batch_size = 1,shuffle = True)
for x,y,idx,rot,zoom in val_dataset:
q_out,ang_out,width_out = post_process(y[0], y[1], y[2], y[3])
grasps_pre = detect_grasps(q_out,ang_out,width_out,no_grasp = 1)
grasps_true = val_dataset.dataset.get_raw_grasps(idx,rot,zoom)
`
The text was updated successfully, but these errors were encountered: