This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      Learn more about bidirectional Unicode characters
    
  
  
    
  | if self.ultralytics_loss: | |
| labels = torch.from_numpy(labels) | |
| out_bboxes = torch.zeros((labels.shape[0], 6)) | |
| if len(labels): | |
| out_bboxes[..., 1:] = labels | |
| img = img.transpose((2, 0, 1)) | |
| img = np.ascontiguousarray(img) | |
| return torch.from_numpy(img), out_bboxes if self.ultralytics_loss else labels | 
  
    
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      Learn more about bidirectional Unicode characters
    
  
  
    
  | if self.transform: | |
| batch_n = idx // self.bs | |
| if batch_n % 2 == 0: | |
| self.transform[1].p = 1 | |
| else: | |
| self.transform[1].p = 0 | |
| # albumentations requires bboxes to be (x,y,w,h,class_idx) | |
| augmentations = self.transform(image=img, | |
| bboxes=np.roll(labels, axis=1, shift=4) | 
  
    
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      Learn more about bidirectional Unicode characters
    
  
  
    
  | img_name = self.annotations.iloc[idx, 0] | |
| tg_height = self.annotations.iloc[idx, 1] if self.rect_training else 640 | |
| tg_width = self.annotations.iloc[idx, 2] if self.rect_training else 640 | |
| # img_name[:-4] to remove the .jpg or .png which are coco img formats | |
| label_path = os.path.join(self.root_directory, "labels", self.annot_folder, img_name[:-4] + ".txt") | 
  
    
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      Learn more about bidirectional Unicode characters
    
  
  
    
  | if self.bboxes_format == "coco": | |
| labels[:, -1] -= 1 # 0-indexing the classes of coco labels (1-80 --> 0-79) | |
| labels = np.roll(labels, axis=1, shift=1) | |
| # normalized coordinates are scale invariant, hence after resizing the img we don't resize labels | |
| labels[:, 1:] = coco_to_yolo_tensors(labels[:, 1:], w0=img.shape[1], h0=img.shape[0]) | 
  
    
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      Learn more about bidirectional Unicode characters
    
  
  
    
  | def __getitem__(self, idx): | |
| img_name = self.annotations.iloc[idx, 0] | |
| tg_height = self.annotations.iloc[idx, 1] if self.rect_training else 640 | |
| tg_width = self.annotations.iloc[idx, 2] if self.rect_training else 640 | |
| label_path = os.path.join(self.root_directory, "labels", self.annot_folder, img_name[:-4] + ".txt") | |
| # to avoid an annoying "UserWarning: loadtxt: Empty input file" | |
| with warnings.catch_warnings(): | |
| warnings.simplefilter("ignore") | |
| labels = np.loadtxt(fname=label_path, delimiter=" ", ndmin=2) | |
| # removing annotations with negative values | 
  
    
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      Learn more about bidirectional Unicode characters
    
  
  
    
  | def adaptive_shape(self, annotations): | |
| name = "train" if self.train else "val" | |
| path = os.path.join( | |
| self.root_directory, "labels", | |
| "adaptive_ann_{}_{}_br_{}.csv".format(name, self.len_ann, int(self.batch_range)) | |
| ) | |
| if os.path.isfile(path): | |
| print(f"==> Loading cached annotations for rectangular training on {self.annot_folder}") | 
  
    
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      Learn more about bidirectional Unicode characters
    
  
  
    
  | try: | |
| self.annotations = pd.read_csv(os.path.join(root_directory, "labels", annot_file), | |
| header=None, index_col=0).sort_values(by=[0]) | |
| self.annotations = self.annotations.head((len(self.annotations)-1)) # just removes last line | |
| except FileNotFoundError: | |
| annotations = [] | |
| for img_txt in os.listdir(os.path.join(self.root_directory, "labels", self.annot_folder)): | |
| img = img_txt.split(".txt")[0] | |
| try: | |
| w, h = imagesize.get(os.path.join(self.root_directory, "images", self.annot_folder, f"{img}.jpg")) | 
  
    
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      Learn more about bidirectional Unicode characters
    
  
  
    
  | class Training_Dataset(Dataset): | |
| def __init__(self, | |
| root_directory=config.ROOT_DIR, | |
| transform=None, | |
| train=True, | |
| rect_training=False, | |
| default_size=640, | |
| bs=64, | |
| bboxes_format="coco", | 
  
    
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      Learn more about bidirectional Unicode characters
    
  
  
    
  | class Training_Dataset(Dataset): | |
| """COCO 2017 dataset constructed using the PyTorch built-in functionalities""" | |
| def __init__(self, | |
| num_classes, | |
| root_directory=config.ROOT_DIR, | |
| transform=None, | |
| train=True, | |
| rect_training=False, | |
| default_size=640, | 
  
    
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      Learn more about bidirectional Unicode characters
    
  
  
    
  | gist = "indentation error" | 
NewerOlder