Beispiel #1
0
 def get_grasp(self,idx,rot = 0,zoom=1.0):
     grs = Grasps.load_from_jacquard_files(self.graspf[idx],scale = self.output_size/1024.0)#因为图像每个都resize了,所以这里每个抓取框都要缩放
     c = self.output_size//2
     grs.rotate(rot,(c,c))
     grs.zoom(zoom,(c,c))
     
     pos_img,angle_img,width_img = grs.generate_img(self.output_size,self.output_size)
     
     return pos_img,angle_img,width_img
 def get_grasp(self,idx,rot = 0,zoom=1.0):
     grs = Grasps.load_from_jacquard_files(self.graspf[idx],scale = self.output_size/1024.0)#因为图像每个都resize了,所以这里每个抓取框都要缩放
     c = self.output_size//2
     grs.rotate(rot,(c,c))
     grs.zoom(zoom,(c,c))
     
     pos_img,angle_img,width_img = grs.generate_img(self.output_size,self.output_size)
     # poto_data = (pos_grid_img,gt_points, gt_angles, gt_widths,gt_lengths)
     poto_data = grs.generate_grid_mask(shape = (self.output_size,self.output_size))
     return pos_img,angle_img,width_img,poto_data
Beispiel #3
0
 def get_raw_grasps(self,idx,rot = 0,zoom = 1.0):
     '''
     :功能       :读取返回指定id的抓取框信息斌进行一系列预处理(裁剪,缩放等)后以Grasps对象的形式返回
     :参数 idx   :int,要读取的数据id
     :返回       :Grasps,此id中包含的抓取
     '''
     raw_grasps = Grasps.load_from_jacquard_files(self.graspf[idx],scale = self.output_size/1024.0)
     c = self.output_size//2
     raw_grasps.rotate(rot,(c,c))
     raw_grasps.zoom(zoom,(c,c))
     return raw_grasps
Beispiel #4
0
 def check_typical(self, idx, rot, zoom):
     grs = Grasps.load_from_jacquard_files(
         self.graspf[idx],
         scale=self.output_size / 1024.0)  #因为图像每个都resize了,所以这里每个抓取框都要缩放
     c = self.output_size // 2
     grs.rotate(rot, (c, c))
     grs.zoom(zoom, (c, c))
     # 下面是新加的代码,用于测试典型学习的内容
     angles = [round(gr.angle, 1) for gr in grs.grs]
     angle_dict = dict(Counter(angles))
     list1, list2 = (list(t) for t in zip(
         *sorted(zip(angle_dict.values(), angle_dict.keys()))))
     first = list1[-1]
     if len(list1) > 1:
         second = list1[-2]
         total = first + second
     else:
         total = first
     percent = (total) / len(grs.grs)
     if percent > 0.70:
         # 生成样例学习
         angle_shift = 0.2
         typical1_min = list2[-1] - angle_shift
         typical1_max = list2[-1] + angle_shift
         if len(list1) > 1:
             typical2_min = list2[-2] - angle_shift
             typical2_max = list2[-2] + angle_shift
         else:
             typical2_min = 0
             typical2_max = 0
         grs1 = []
         grs2 = []
         grs3 = []
         for gr in grs.grs[::]:
             if gr.angle < typical1_max and gr.angle > typical1_min:
                 grs1.append(gr)
             elif gr.angle < typical2_max and gr.angle > typical2_min:
                 grs2.append(gr)
             else:
                 grs3.append(gr)
         grasp_true1 = Grasps(grs1)
         # grasp_true2 = Grasps(grs2)
         # grasp_true3 = Grasps(grs3)
         return percent, grasp_true1
     return percent, Grasps(grs)
Beispiel #5
0
    def get_grasp(self, idx, rot=0, zoom=1.0):
        grs = Grasps.load_from_jacquard_files(
            self.graspf[idx],
            scale=self.output_size / 1024.0)  #因为图像每个都resize了,所以这里每个抓取框都要缩放
        c = self.output_size // 2
        grs.rotate(rot, (c, c))
        grs.zoom(zoom, (c, c))
        # 下面是新加的代码,用于测试典型学习的内容
        percent, grasp_true1 = self.check_typical(idx, rot, zoom)
        if percent > 0.70:
            pos_img, angle_img, width_img = grasp_true1.generate_img_n(
                self.output_size, self.output_size)
        else:
            # 不是的话啥都不用做
            pos_img, angle_img, width_img = grs.generate_img(
                self.output_size, self.output_size)

        return pos_img, angle_img, width_img