Esempio n. 1
0
    def get_scene_states(self, xabs):
        """
        functions get scene_states (scene memories) for each current pedestrian
        """
        nonlinear_grid_h0 = torch.zeros(
            (self.num_layers, self.batch_size, self.rnn_size))
        nonlinear_grid_c0 = torch.zeros(
            (self.num_layers, self.batch_size, self.rnn_size))
        if (self.use_cuda):
            nonlinear_grid_h0, nonlinear_grid_c0 = nonlinear_grid_h0.cuda(
            ), nonlinear_grid_c0.cuda()

        for pid in range(self.batch_size):
            # For each ped in current frame
            gid = get_grid_cell_index(xabs[pid].cpu().detach().numpy(),
                                      self.num_grid_cells)  # current grid-cell
            sid = get_sub_grid_cell_index(
                xabs[pid].cpu().detach().numpy(), self.num_grid_cells,
                self.num_sub_grids)  # current grid-cell
            if (gid in self.scene_info["nonlinear_grid_list"][self.dataset_id]
                    and sid in self.scene_info["nonlinear_subgrid_maps"][
                        self.dataset_id][gid]):
                # if current grid-cells is in nonlinear grid list then extract it to use
                nonlinear_grid_h0[:, pid, :] = self.scene_states[
                    "nonlinear_h0_list"][self.dataset_id][gid]
                nonlinear_grid_c0[:, pid, :] = self.scene_states[
                    "nonlinear_c0_list"][self.dataset_id][gid]

        self.scene_grid_h0 = nonlinear_grid_h0.view(-1, self.batch_size,
                                                    self.rnn_size)
        self.scene_grid_c0 = nonlinear_grid_c0.view(-1, self.batch_size,
                                                    self.rnn_size)
        if (self.use_cuda):
            self.scene_grid_h0, self.scene_grid_c0 = self.scene_grid_h0.cuda(
            ), self.scene_grid_c0.cuda()
    def get_scene_states(self, xabs):
        """
        functions get scene_states (scene memories) for each current pedestrian
        """

        common_grid_h0 = torch.zeros(
            (self.num_layers, self.batch_size, self.rnn_size))
        common_grid_c0 = torch.zeros(
            (self.num_layers, self.batch_size, self.rnn_size))
        if (self.use_cuda):
            common_grid_h0, common_grid_c0 = common_grid_h0.cuda(
            ), common_grid_c0.cuda()

        for pid in range(self.batch_size):
            # For each ped in current frame
            gid = get_grid_cell_index(xabs[pid].detach().numpy(),
                                      self.num_grid_cells)  # current grid-cell
            if (gid in self.scene_info["common_grid_list"][self.dataset_id]):
                # if current grid-cells is in common grid list then extract it to use
                common_grid_h0[:,
                               pid, :] = self.scene_states["common_h0_list"][
                                   self.dataset_id][gid]
                common_grid_c0[:,
                               pid, :] = self.scene_states["common_c0_list"][
                                   self.dataset_id][gid]

        self.scene_grid_h0 = common_grid_h0.view(-1, self.batch_size,
                                                 self.rnn_size)
        self.scene_grid_c0 = common_grid_c0.view(-1, self.batch_size,
                                                 self.rnn_size)
        if (self.use_cuda):
            self.scene_grid_h0, self.scene_grid_c0 = self.scene_grid_h0.cuda(
            ), self.scene_grid_c0.cuda()
Esempio n. 3
0
    def get_scene_states(self, xabs):
        """
        functions get scene_states (scene memories) for each current pedestrian
        """
        scene_grid_h0 = torch.zeros(
            (self.num_layers, self.batch_size, self.rnn_size))
        scene_grid_c0 = torch.zeros(
            (self.num_layers, self.batch_size, self.rnn_size))
        if (self.use_cuda):
            scene_grid_h0, scene_grid_c0 = scene_grid_h0.cuda(
            ), scene_grid_c0.cuda()

        for pid in range(self.batch_size):
            # For each ped in current frame
            gid = get_grid_cell_index(xabs[pid].detach().numpy(),
                                      self.num_grid_cells)  # current grid-cell
            scene_grid_h0[:, pid, :] = self.scene_states["scene_h0_list"][
                self.dataset_id][gid]
            scene_grid_c0[:, pid, :] = self.scene_states["scene_c0_list"][
                self.dataset_id][gid]

        self.scene_grid_h0 = scene_grid_h0.view(-1, self.batch_size,
                                                self.rnn_size)
        self.scene_grid_c0 = scene_grid_c0.view(-1, self.batch_size,
                                                self.rnn_size)
        if (self.use_cuda):
            self.scene_grid_h0, self.scene_grid_c0 = self.scene_grid_h0.cuda(
            ), self.scene_grid_c0.cuda()
Esempio n. 4
0
 def update_scene_states(self, xabs):
     """
     functions update scene_states (scene memories)
     """
     for pid in range(self.batch_size):
         # For each ped in current frame
         gid = get_grid_cell_index(xabs[pid].detach().numpy(),
                                   self.num_grid_cells)  # current grid-cell
         self.scene_states["scene_h0_list"][self.dataset_id][
             gid] = self.scene_grid_h0[:, pid, :].data.clone()
         self.scene_states["scene_c0_list"][self.dataset_id][
             gid] = self.scene_grid_c0[:, pid, :].data.clone()
    def update_scene_states(self, xabs):

        """
        functions update scene_states (scene memories)
        """
        for pid in range(self.batch_size):
            # For each ped in current frame
            gid =  get_grid_cell_index(xabs[pid].detach().numpy(), self.num_grid_cells) # current grid-cell
            sid =  get_sub_grid_cell_index(xabs[pid].detach().numpy(), self.num_grid_cells, self.num_sub_grids)

            if(gid in self.scene_info["common_grid_list"][self.dataset_id] \
                and sid in self.scene_info["common_sub_grids_maps"][self.dataset_id][gid]): 
                # if grid-cell is in common_grid_list then update
                self.scene_states["common_h0_list"][self.dataset_id][gid] = self.scene_grid_h0[:,pid,:].data.clone()
                self.scene_states["common_c0_list"][self.dataset_id][gid] = self.scene_grid_c0[:,pid,:].data.clone()