def init_siam_model(self, weights_filepath, config_filepath): class TempLoader: resume = weights_filepath config = config_filepath cpu = False args = TempLoader() # Setup device self.device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') torch.backends.cudnn.benchmark = True # Setup Model self.cfg = load_config(args) self.siammask = Custom(anchors=self.cfg['anchors']) self.siammask = load_pretrain(self.siammask, args.resume) self.siammask.eval().to(self.device)
def init_siam_model(self): class TempLoader: resume = os.path.join(self.weights_path, 'SiamMask_DAVIS.pth') config = os.path.join(self.weights_path, 'config_davis.json') cpu = False args = TempLoader() # Setup device self.device = torch.device( 'cuda' if torch.cuda.is_available() else 'cpu') torch.backends.cudnn.benchmark = True # Setup Model self.cfg = load_config(args) self.siammask = Custom(anchors=self.cfg['anchors']) self.siammask = load_pretrain(self.siammask, args.resume) self.siammask.eval().to(self.device)
def __init__(self): class temp: resume = r'E:\Shabtay\fonda_pytorch\SiamMask_master\models\SiamMask_DAVIS.pth' # ,help='path to latest checkpoint (default: none)') config = r'E:\Shabtay\fonda_pytorch\SiamMask_master\experiments\siammask_sharp\config_davis.json' # help='hyper-parameter of SiamMask in json format') # base_path=r'E:\Shabtay\fonda_pytorch\SiamMask_master\data\tennis' # help='datasets') base_path = r'C:\Users\Dataloop\.dataloop\datasets\5ce2b280fe3b45001c2c7a51\image\Arlozorov1' cpu = False # help='cpu mode') args = temp() # Setup device self.device = torch.device('cuda' if torch.cuda.is_available() else 'cpu') torch.backends.cudnn.benchmark = True # Setup Model self.cfg = load_config(args) from SiamMask_master.experiments.siammask_sharp.custom import Custom self.siammask = Custom(anchors=self.cfg['anchors']) if args.resume: assert os.path.isfile(args.resume), 'Please download {} first.'.format(args.resume) self.siammask = load_pretrain(self.siammask, args.resume) self.siammask.eval().to(self.device)
def main(): global args, logger, v_id args = parser.parse_args() cfg = load_config(args) init_log('global', logging.INFO) if args.log != "": add_file_handler('global', args.log, logging.INFO) logger = logging.getLogger('global') logger.info(args) # setup model if args.arch == 'Custom': from custom import Custom model = Custom(anchors=cfg['anchors']) else: parser.error('invalid architecture: {}'.format(args.arch)) if args.resume: assert isfile(args.resume), '{} is not a valid file'.format( args.resume) model = load_pretrain(model, args.resume) model.eval() device = torch.device('cuda' if ( torch.cuda.is_available() and not args.cpu) else 'cpu') model = model.to(device) # setup dataset dataset = load_dataset(args.dataset) # VOS or VOT? if args.dataset in ['DAVIS2016', 'DAVIS2017', 'ytb_vos'] and args.mask: vos_enable = True # enable Mask output else: vos_enable = False total_lost = 0 # VOT iou_lists = [] # VOS speed_list = [] for v_id, video in enumerate(dataset.keys(), start=1): if args.video != '' and video != args.video: continue if vos_enable: iou_list, speed = track_vos( model, dataset[video], cfg['hp'] if 'hp' in cfg.keys() else None, args.mask, args.refine, args.dataset in ['DAVIS2017', 'ytb_vos'], device=device) iou_lists.append(iou_list) else: lost, speed = track_vot(model, dataset[video], cfg['hp'] if 'hp' in cfg.keys() else None, args.mask, args.refine, device=device) total_lost += lost speed_list.append(speed) # report final result if vos_enable: for thr, iou in zip(thrs, np.mean(np.concatenate(iou_lists), axis=0)): logger.info('Segmentation Threshold {:.2f} mIoU: {:.3f}'.format( thr, iou)) else: logger.info('Total Lost: {:d}'.format(total_lost)) logger.info('Mean Speed: {:.2f} FPS'.format(np.mean(speed_list)))