def hockeyLoadData(shuffle=True):
    path_violence = constants.PATH_HOCKEY_FRAMES_VIOLENCE
    path_non_violence = constants.PATH_HOCKEY_FRAMES_NON_VIOLENCE
    # if not os.path.exists(os.path.join(constants.PATH_HOCKEY_README, 'all_data_labels_numFrames.csv')):
    #     datasetAll, labelsAll, numFramesAll = initializeDataset.createDataset(path_violence, path_non_violence, shuffle)  #shuffle
    #     all_data = zip(datasetAll, labelsAll, numFramesAll)
    #     save_csvfile_multicolumn(all_data, os.path.join(constants.PATH_HOCKEY_README, 'all_data_labels_numFrames.csv'))
    # else:
    #     datasetAll, labelsAll, numFramesAll = read_csvfile_threecolumns(os.path.join(constants.PATH_HOCKEY_README, 'all_data_labels_numFrames.csv'))
    # return datasetAll, labelsAll, numFramesAll
    if not os.path.exists(
            os.path.join(constants.PATH_HOCKEY_README,
                         'all_data_labels_numFrames.csv')):
        datasetAll, labelsAll, numFramesAll = [], [], []
        v_videos = os.listdir(path_violence)
        v_videos = sortListByStrNumbers(v_videos)
        nv_videos = os.listdir(path_non_violence)
        nv_videos = sortListByStrNumbers(nv_videos)

        for vd in v_videos:
            d = os.path.join(path_violence, vd)
            if not os.path.isdir(d):
                continue
            datasetAll.append(d)
            labelsAll.append(1)
        # imagesNoF = []
        for vd in nv_videos:
            d = os.path.join(path_non_violence, vd)
            if not os.path.isdir(d):
                continue
            datasetAll.append(d)
            labelsAll.append(0)
        # Dataset = imagesF + imagesNoF
        # Labels = list([1] * len(imagesF)) + list([0] * len(imagesNoF))
        numFramesAll = [
            len(glob.glob1(datasetAll[i], "*.jpg"))
            for i in range(len(datasetAll))
        ]
        if shuffle:
            combined = list(zip(datasetAll, labelsAll, numFramesAll))
            random.shuffle(combined)
            datasetAll[:], labelsAll[:], numFramesAll[:] = zip(*combined)

        all_data = zip(datasetAll, labelsAll, numFramesAll)
        save_csvfile_multicolumn(
            all_data,
            os.path.join(constants.PATH_HOCKEY_README,
                         'all_data_labels_numFrames.csv'))
    else:
        datasetAll, labelsAll, numFramesAll = read_csvfile_threecolumns(
            os.path.join(constants.PATH_HOCKEY_README,
                         'all_data_labels_numFrames.csv'))
    return datasetAll, labelsAll, numFramesAll
Пример #2
0
 def __load_video_frames__(self, video_path, as_grey=False):
     _, video_name = os.path.split(video_path)
     imgs_paths = os.listdir(video_path)
     imgs_paths = sortListByStrNumbers(imgs_paths)
     frames = []
     for i, path in enumerate(imgs_paths):
         frame_path = os.path.join(video_path, path)
         img = cv2.imread(frame_path)
         if as_grey:
             img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
         frames.append(img)
     return frames, imgs_paths
Пример #3
0
    def __getitem__(self, idx):
        vid_name = self.videos[idx]
        label = self.labels[idx]
        frames_names = os.listdir(vid_name)
        frames_names = sortListByStrNumbers(frames_names)
        frame_path = os.path.join(vid_name, frames_names[self.frame_idx])

        frame = Image.open(frame_path)
        frame = frame.convert("RGB")
        # frame = np.array(frame)
        frame = self.spatial_transform(frame)

        return vid_name, frame, label, frame_path
Пример #4
0
def load_video_segment(path, init_frame, num_frames):
    frames = os.listdir(path)
    frames = sortListByStrNumbers(frames)
    # print('NumFRames=', len(frames))
    segment = []
    n = 0
    for i in range(len(frames)):
        if len(segment) == num_frames:
            break
        if i >= init_frame:
            img_dir = os.path.join(path, frames[i])
            img1 = Image.open(img_dir)
            img1 = img1.convert("RGB")
            img = np.array(img1)
            segment.append(img)
    central_frame = segment[int(len(segment) / 2)]
    return segment, central_frame
Пример #5
0
    def sample(self, video_path):
        frames_dirs = os.listdir(video_path)
        frames_dirs = sortListByStrNumbers(frames_dirs)
        frameT0 = Image.open(os.path.join(video_path,
                                          frames_dirs[0])).convert('L')
        frameT0 = np.array(frameT0)
        # self.plotFrame(frameT0)
        frameT1 = 0
        x_c0, y_c0 = self.grayCentroid(frameT0)
        frames_centroids = [[x_c0, y_c0]]

        frames_samples = [frameT0]
        frames_samples_indices = [0]

        d_v = 0
        for i in range(1, len(frames_dirs)):
            frameT1 = Image.open(os.path.join(video_path,
                                              frames_dirs[i])).convert('L')
            frameT1 = np.array(frameT1)

            self.plotFrame(frameT0, i - 1, frameT1, i)

            [x_c0, y_c0] = frames_centroids[len(frames_centroids) - 1]
            x_c1, y_c1 = self.grayCentroid(frameT1)

            #
            x_c_start, y_c_start = self.averageCentroid(frames_centroids)
            d = self.relativeDistance(x_c_start, y_c_start, x_c1, y_c1)

            if d < self.threshold1:
                frames_centroids.append([x_c1, y_c1])
                if len(frames_centroids) > self.maxSampleLength:
                    [x_c0, y_c0] = frames_centroids[len(frames_centroids) - 1]
                    frames_centroids = [[x_c0, y_c0]]
            else:
                frames_samples.append(frameT1)
                frames_samples_indices.append(i)
            print(
                'LenSimilarFrames({}), frame t({})-frame t+1({}) = {}, avg ({}, {}), current_centroid ({}, {})'
                .format(len(frames_centroids), i - 1, i, d, x_c_start,
                        y_c_start, x_c1, y_c1))
            frameT0 = frameT1
        return frames_samples, frames_samples_indices
Пример #6
0
def load_multiple_segments(path, segments_num, segment_len):
    frames = os.listdir(path)
    frames = sortListByStrNumbers(frames)