def get_raw_grasps(self, idx, rot=0, zoom=1.0): raw_grasps = Grasps.load_from_cornell_files(self.graspf[idx]) center, left, top = self._get_crop_attrs(idx) # 这是paddlepaddel这里报错而专门加的一句,rot.sequeeze() raw_grasps.rotate(rot.squeeze(), center) raw_grasps.offset((-top, -left)) raw_grasps.zoom(zoom, (self.output_size // 2, self.output_size // 2)) return raw_grasps
def _get_crop_attrs(self, idx): grasp_rectangles = Grasps.load_from_cornell_files(self.graspf[idx]) center = grasp_rectangles.center left = max( 0, min(center[1] - self.output_size // 2, 640 - self.output_size)) top = max( 0, min(center[0] - self.output_size // 2, 480 - self.output_size)) return center, left, top
def get_raw_grasps(self, idx): ''' :功能 :读取返回指定id的抓取框信息斌进行一系列预处理(裁剪,缩放等)后以Grasps对象的形式返回 :参数 idx :int,要读取的数据id :返回 :Grasps,此id中包含的抓取 ''' raw_grasps = Grasps.load_from_cornell_files(self.graspf[idx]) center, left, top = self._get_crop_attrs(idx) raw_grasps.offset((-left, -top)) return raw_grasps
def get_grasp(self, idx, rot=0, zoom=1.0): grs = Grasps.load_from_cornell_files(self.graspf[idx]) center, left, top = self._get_crop_attrs(idx) #先旋转再偏移再缩放 grs.rotate(rot, center) grs.offset((-top, -left)) grs.zoom(zoom, (self.output_size // 2, self.output_size // 2)) pos_img, angle_img, width_img = grs.generate_img( shape=(self.output_size, self.output_size)) return pos_img, angle_img, width_img
def get_raw_grasps(self,idx,rot = 0.0,zoom = 1.0): ''' :功能 :读取返回指定id的抓取框信息斌进行一系列预处理(裁剪,缩放等)后以Grasps对象的形式返回 :参数 idx :int,要读取的数据id :返回 :Grasps,此id中包含的抓取 ''' raw_grasps = Grasps.load_from_cornell_files(self.graspf[idx]) center, left, top = self._get_crop_attrs(idx) raw_grasps.rotate(rot,center) raw_grasps.offset((-top,-left)) raw_grasps.zoom(zoom,(self.output_size//2,self.output_size//2)) return raw_grasps
def _get_crop_attrs(self, idx): ''' :功能 :读取多抓取框中心点的坐标,并结合output_size计算要裁剪的左上角点坐标 :参数 idx :int, :返回 :计算出来的多抓取框中心点坐标和裁剪区域左上角点坐标 ''' grasp_rectangles = Grasps.load_from_cornell_files(self.graspf[idx]) center = grasp_rectangles.center #按照ggcnn里面的话,这里本该加个限制条件,防止角点坐标溢出边界,但前面分析过,加不加区别不大,就不加了 left = center[0] - self.output_size // 2 top = center[1] - self.output_size // 2 return center, left, top
def _get_crop_attrs(self,idx): ''' :功能 :读取多抓取框中心点的坐标,并结合output_size计算要裁剪的左上角点坐标 :参数 idx :int, :返回 :计算出来的多抓取框中心点坐标和裁剪区域左上角点坐标 ''' grasp_rectangles = Grasps.load_from_cornell_files(self.graspf[idx]) center = grasp_rectangles.center #按照ggcnn里面的话,这里本该加个限制条件,防止角点坐标溢出边界,但前面分析过,加不加区别不大,就不加了 #分析错误,后面出现bug了,所以还是加上吧 left = max(0, min(center[1] - self.output_size // 2, 640 - self.output_size)) top = max(0, min(center[0] - self.output_size // 2, 480 - self.output_size)) return center,left,top#the center (column,row) must be changed to for later rotate considerations
def get_grasp(self, idx): ''' :功能 :读取返回指定id的抓取标注参数并将多个抓取框的参数返回融合 :参数 idx :int,要读取的数据id :返回 :以图片的方式返回定义一个抓取的多个参数,包括中心点,角度,宽度和长度,同时返回idx,方便后面validate的时候查找真实的抓取框用 ''' grs = Grasps.load_from_cornell_files(self.graspf[idx]) grs.offset((-(grs.center[0] - self.output_size // 2), -(grs.center[1] - self.output_size // 2))) pos_img, angle_img, width_img = grs.generate_img( shape=(self.output_size, self.output_size)) return pos_img, angle_img, width_img
def get_grasp(self,idx,rot=0, zoom=1.0): ''' :功能 :读取返回指定id的抓取标注参数并将多个抓取框的参数返回融合 :参数 idx :int,要读取的数据id :返回 :以图片的方式返回定义一个抓取的多个参数,包括中心点,角度,宽度和长度,同时返回idx,方便后面validate的时候查找真实的抓取框用 ''' grs = Grasps.load_from_cornell_files(self.graspf[idx]) center, left, top = self._get_crop_attrs(idx) #先旋转再偏移再缩放 grs.rotate(rot,center) grs.offset((-top,-left)) grs.zoom(zoom,(self.output_size//2,self.output_size//2)) pos_img,angle_img,width_img = grs.generate_img(shape = (self.output_size,self.output_size)) return pos_img,angle_img,width_img
def get_grasp(self, idx): ''' :功能 :读取返回指定id的抓取标注参数并将多个抓取框的参数返回融合 :参数 idx :int,要读取的数据id :参数 pos :bool,是否生成返回位置映射图 :参数 angle :bool,是否生成返回角度映射图 :参数 width :bool,是否生成返回夹爪宽度映射图 :返回 :以图片的方式返回定义一个抓取的多个参数,包括中心点,角度,宽度和长度 ''' grs = Grasps.load_from_cornell_files(self.graspf[idx]) grs.offset((-(grs.center[0] - self.output_size // 2), -(grs.center[1] - self.output_size // 2))) pos_img, angle_img, width_img = grs.generate_img( shape=(self.output_size, self.output_size)) return pos_img, angle_img, width_img