def __init__(self, input_size=416, config_file='Models/yolo-tiny-onecls/yolov3-tiny-onecls.cfg', weight_file='Models/yolo-tiny-onecls/best-model.pth', nms=0.2, conf_thres=0.45, device='cuda'): self.input_size = input_size self.model = Darknet(config_file).to(device) self.model.load_state_dict(torch.load(weight_file)) self.model.eval() self.device = device self.nms = nms self.conf_thres = conf_thres self.resize_fn = ResizePadding(input_size, input_size) self.transf_fn = transforms.ToTensor()
def __init__(self, master: tk.Tk): self.master = master self.master.title('Human Falling Detection') self.master.protocol('WM_DELETE_WINDOW', self._on_closing) self.main_screen = get_monitor_from_coord(master.winfo_x(), master.winfo_y()) self.width = int(self.main_screen.width * .85) self.height = int(self.main_screen.height * .85) self.master.geometry('{}x{}'.format(self.width, self.height + 15)) self.cam = None self.canvas = tk.Canvas(master, width=int(self.width * .65), height=self.height) self.canvas.grid(row=0, column=0, padx=5, pady=5, sticky=tk.NSEW) fig = plt.Figure(figsize=(6, 8), dpi=100) fig.suptitle('Actions') self.ax = fig.add_subplot(111) self.fig_canvas = FigureCanvasTkAgg(fig, self.master) self.fig_canvas.get_tk_widget().grid(row=0, column=1, padx=5, pady=5, sticky=tk.NSEW) # Load Models self.resize_fn = ResizePadding(416, 416) self.models = Models() self.actions_graph() self.delay = 15 self.load_cam('../Data/falldata/Home/Videos/video (1).avi') self.update()
# POSE MODEL. inp_pose = args.pose_input_size.split('x') inp_pose = (int(inp_pose[0]), int(inp_pose[1])) pose_model = SPPE_FastPose(args.pose_backbone, inp_pose[0], inp_pose[1], device=device) # Tracker. max_age = 30 tracker = Tracker(max_age=max_age, n_init=3) # Actions Estimate. action_model = TSSTG() resize_fn = ResizePadding(inp_dets, inp_dets) cam_source = args.camera if type(cam_source) is str and os.path.isfile(cam_source): # Use loader thread with Q for video file. cam = CamLoader_Q(cam_source, queue_size=1000, preprocess=preproc).start() else: # Use normal thread loader for webcam. cam = CamLoader( int(cam_source) if cam_source.isdigit() else cam_source, preprocess=preproc).start() #frame_size = cam.frame_size #scf = torch.min(inp_size / torch.FloatTensor([frame_size]), 1)[0]