def __init__(self, gpu_id=1, name=None, is_conv_4=True, mn_checkpoint=None, dataset_name=MyDataset.dataset_name_miniimagenet, is_check=False): self.gpu_id = gpu_id os.environ["CUDA_VISIBLE_DEVICES"] = str(self.gpu_id) self.name = name self.is_conv_4 = is_conv_4 self.dataset_name = dataset_name self.num_way = 5 self.num_shot = 1 self.num_workers = 8 self.episode_size = 15 self.test_episode = 600 self.mn_checkpoint = mn_checkpoint ############################################################################################### if self.is_conv_4: self.matching_net, self.batch_size = C4Net(hid_dim=64, z_dim=64), 64 else: self.matching_net, self.batch_size = ResNet12Small( avg_pool=True, drop_rate=0.1), 32 ############################################################################################### self.is_check = is_check if self.is_check: self.log_file = None return self.log_file = Tools.new_dir( os.path.join( "../models_abl/{}/mn/result".format(self.dataset_name), "{}_{}.txt".format(self.name, Tools.get_format_time()))) ############################################################################################### self.is_png = True self.data_root = MyDataset.get_data_root( dataset_name=self.dataset_name, is_png=self.is_png) _, _, self.transform_test = MyTransforms.get_transform( dataset_name=self.dataset_name, has_ic=True, is_fsl_simple=True, is_css=False) ############################################################################################### pass
def __init__(self, gpu_id, ic_out_dim=512, modify_head=False, net_name=net_name_conv4): self.gpu_id = gpu_id os.environ["CUDA_VISIBLE_DEVICES"] = str(self.gpu_id) self.num_workers = 8 self.batch_size = 64 self.val_freq = 10 # ic self.ic_out_dim = ic_out_dim self.ic_ratio = 1 self.modify_head = modify_head self.net_name = net_name self.net = self.get_net(self.net_name) self.ic_net = ICNet(net=self.net) self.is_png = True # self.is_png = False self.learning_rate = 0.01 self.train_epoch = 1700 self.first_epoch, self.t_epoch = 500, 200 self.adjust_learning_rate = Runner.adjust_learning_rate1 self.model_name = "{}_{}_{}_{}_{}_{}_{}_{}_{}{}{}".format( self.gpu_id, self.net_name, self.batch_size, self.ic_out_dim, self.ic_ratio, self.train_epoch, self.first_epoch, self.t_epoch, self.learning_rate, "_head" if self.modify_head else "", "_png" if self.is_png else "") self.time = Tools.get_format_time() self.ic_dir = Tools.new_dir( "../models_abl/ic_res_xx/{}_{}_ic.pkl".format( self.time, self.model_name)) self.log_file = self.ic_dir.replace(".pkl", ".txt") self.data_root = self.get_data_root() Tools.print(self.model_name, txt_path=self.log_file) Tools.print(self.data_root, txt_path=self.log_file) pass
def __init__(self, gpu_id=1, dataset_name=MyDataset.dataset_name_miniimagenet, is_conv_4=True, is_res34=True, is_modify_head=True): self.gpu_id = gpu_id os.environ["CUDA_VISIBLE_DEVICES"] = str(self.gpu_id) self.dataset_name = dataset_name self.is_conv_4 = is_conv_4 self.is_res34 = is_res34 self.modify_head = is_modify_head self.num_workers = 8 self.num_way = 5 self.num_shot = 1 self.val_freq = 10 self.episode_size = 15 self.test_episode = 600 self.ic_out_dim = 512 self.ic_ratio = 1 self.learning_rate = 0.01 self.loss_fsl_ratio = 1.0 self.loss_ic_ratio = 1.0 ############################################################################################### self.train_epoch = 1500 self.first_epoch, self.t_epoch = 300, 200 self.adjust_learning_rate = RunnerTool.adjust_learning_rate1 ############################################################################################### ############################################################################################### self.is_png = True self.data_root = MyDataset.get_data_root( dataset_name=self.dataset_name, is_png=self.is_png) self.transform_train_ic, self.transform_train_fsl, self.transform_test = MyTransforms.get_transform( dataset_name=self.dataset_name, has_ic=True, is_fsl_simple=True, is_css=False) if self.is_res34: self.resnet = resnet34 self.ic_net_name = "res34{}".format( "_head" if self.modify_head else "") else: self.resnet = resnet18 self.ic_net_name = "res18{}".format( "_head" if self.modify_head else "") pass if self.is_conv_4: self.matching_net, self.batch_size, self.e_net_name = C4Net( hid_dim=64, z_dim=64), 64, "C4" else: self.matching_net, self.batch_size, self.e_net_name = ResNet12Small( avg_pool=True, drop_rate=0.1), 32, "R12S" ############################################################################################### self.model_name = "{}_{}_{}_{}_{}_{}_{}_{}_{}_{}_{}_{}_{}{}".format( self.gpu_id, self.ic_net_name, self.e_net_name, self.train_epoch, self.batch_size, self.num_way, self.num_shot, self.first_epoch, self.t_epoch, self.ic_out_dim, self.ic_ratio, self.loss_fsl_ratio, self.loss_ic_ratio, "_png" if self.is_png else "") self.time = Tools.get_format_time() _root_path = "../models_abl/{}/mn".format(self.dataset_name) self.mn_dir = "{}/{}_{}_mn.pkl".format(_root_path, self.time, self.model_name) self.ic_dir = "{}/{}_{}_ic.pkl".format(_root_path, self.time, self.model_name) self.log_file = self.ic_dir.replace(".pkl", ".txt") Tools.print(self.data_root, txt_path=self.log_file) Tools.print(self.model_name, txt_path=self.log_file) Tools.print(self.mn_dir, txt_path=self.log_file) Tools.print(self.ic_dir, txt_path=self.log_file) pass
result_name = "08-14-2" cap = cv2.VideoCapture(1) kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (3, 3)) background_sub_tractor_mog2 = cv2.createBackgroundSubtractorMOG2() count = 0 while True: ret, frame = cap.read() if ret: mask = background_sub_tractor_mog2.apply(frame) mask = cv2.morphologyEx(mask, cv2.MORPH_OPEN, kernel) if np.sum(mask // 125) > 1000: count += 1 Tools.print("{} {}".format(Tools.get_format_time(), count)) if count > 5: file_name = "{}_{}.png".format( Tools.get_format_time().replace(":", "_"), count) result_file_name = os.path.join(result_dir, result_name, file_name) cv2.imwrite(Tools.new_dir(result_file_name), frame) pass cv2.imshow('frame', frame) cv2.imshow('mask', mask) if cv2.waitKey(30) & 0xff == "q": break else: break