Mercurial > repos > bgruening > json2yolosegment
comparison yolov8.py @ 2:158e6ce48345 draft
planemo upload for repository https://github.com/bgruening/galaxytools/tree/master/tools commit 739bcabf09bdb9c291121a6b1f889dabe1a98ea9
| author | bgruening | 
|---|---|
| date | Fri, 11 Jul 2025 06:49:20 +0000 | 
| parents | dfda27273ead | 
| children | 97bc82ee2a61 | 
   comparison
  equal
  deleted
  inserted
  replaced
| 1:dfda27273ead | 2:158e6ce48345 | 
|---|---|
| 173 | 173 | 
| 174 | 174 | 
| 175 # | 175 # | 
| 176 # Functions | 176 # Functions | 
| 177 # | 177 # | 
| 178 | |
| 179 def safe_rmtree(path): | |
| 180 try: | |
| 181 shutil.rmtree(path) | |
| 182 except OSError: | |
| 183 time.sleep(1) | |
| 184 shutil.rmtree(path, ignore_errors=True) | |
| 185 | |
| 186 | |
| 178 # Train a new model on the dataset mentioned in yaml file | 187 # Train a new model on the dataset mentioned in yaml file | 
| 179 def trainModel(model_path, model_name, yaml_filepath, **kwargs): | 188 def trainModel(model_path, model_name, yaml_filepath, **kwargs): | 
| 180 if "imgsz" in kwargs: | 189 if "imgsz" in kwargs: | 
| 181 image_size = kwargs['imgsz'] | 190 image_size = kwargs['imgsz'] | 
| 182 else: | 191 else: | 
| 262 else: | 271 else: | 
| 263 init_lr = 1.0 | 272 init_lr = 1.0 | 
| 264 | 273 | 
| 265 train_save_path = os.path.expanduser('~/runs/' + args.mode + '/train/') | 274 train_save_path = os.path.expanduser('~/runs/' + args.mode + '/train/') | 
| 266 if os.path.isdir(train_save_path): | 275 if os.path.isdir(train_save_path): | 
| 267 shutil.rmtree(train_save_path) | 276 safe_rmtree(train_save_path) | 
| 268 # Load a pretrained YOLO model (recommended for training) | 277 # Load a pretrained YOLO model (recommended for training) | 
| 269 if args.model_format == 'pt': | 278 if args.model_format == 'pt': | 
| 270 model = YOLO(os.path.join(model_path, model_name + "." + args.model_format)) | 279 model = YOLO(os.path.join(model_path, model_name + "." + args.model_format)) | 
| 271 else: | 280 else: | 
| 272 model = YOLO(model_name + "." + args.model_format) | 281 model = YOLO(model_name + "." + args.model_format) | 
| 283 # Validate the trained model | 292 # Validate the trained model | 
| 284 def validateModel(model): | 293 def validateModel(model): | 
| 285 # Remove prediction save path if already exists | 294 # Remove prediction save path if already exists | 
| 286 val_save_path = os.path.expanduser('~/runs/' + args.mode + '/val/') | 295 val_save_path = os.path.expanduser('~/runs/' + args.mode + '/val/') | 
| 287 if os.path.isdir(val_save_path): | 296 if os.path.isdir(val_save_path): | 
| 288 shutil.rmtree(val_save_path) | 297 safe_rmtree(val_save_path) | 
| 289 # Validate the model | 298 # Validate the model | 
| 290 metrics = model.val() # no args needed, dataset & settings remembered | 299 metrics = model.val() # no args needed, dataset & settings remembered | 
| 291 metrics.box.map # map50-95 | 300 metrics.box.map # map50-95 | 
| 292 metrics.box.map50 # map50 | 301 metrics.box.map50 # map50 | 
| 293 metrics.box.map75 # map75 | 302 metrics.box.map75 # map75 | 
| 325 run_save_dir = kwargs['run_dir'] | 334 run_save_dir = kwargs['run_dir'] | 
| 326 else: | 335 else: | 
| 327 # Remove prediction save path if already exists | 336 # Remove prediction save path if already exists | 
| 328 pred_save_path = os.path.expanduser('~/runs/' + args.mode + '/predict/') | 337 pred_save_path = os.path.expanduser('~/runs/' + args.mode + '/predict/') | 
| 329 if os.path.isdir(pred_save_path): | 338 if os.path.isdir(pred_save_path): | 
| 330 shutil.rmtree(pred_save_path) | 339 safe_rmtree(pred_save_path) | 
| 331 if "foldername" in kwargs: | 340 if "foldername" in kwargs: | 
| 332 save_folder_name = kwargs['foldername'] | 341 save_folder_name = kwargs['foldername'] | 
| 333 # infer on a local image or directory containing images/videos | 342 # infer on a local image or directory containing images/videos | 
| 334 prediction = model.predict(source=source_datapath, save=True, stream=True, | 343 prediction = model.predict(source=source_datapath, save=True, stream=True, | 
| 335 conf=confidence, imgsz=image_size, | 344 conf=confidence, imgsz=image_size, | 
