Exemplo n.º 1
0
    def __get_parsed_videos(self, season: int) -> Dict[int, ParsedVideo]:
        """ Load the parsed videos for the given season.

        Parameters:
            season (int): The season for which we load the parsed videos.

        Returns:
            The parsed video data for this season.
        """
        parsed_videos = dict()
        for episode in itertools.count(1):
            parsed_video = VideoParser.load_parsed_video(season, episode)
            if parsed_video is None:
                break
            else:
                parsed_videos[episode] = parsed_video
        return parsed_videos
Exemplo n.º 2
0
    def __latest_available_episode(self, predict_season: int, latest_episode: int) -> int:
        """ Determine the latest episode that is available and can be used in the prediction season.

        Arguments:
            predict_season (int): The season for which the prediction is made.
            latest_episode (int): The latest episode of the prediction season which may be used as data.

        Returns:
            The latest available and usable episode of the prediction season.
        """
        max_episode = 0
        for i in range(1, latest_episode + 1):
            if VideoParser.has_parsed_video(predict_season, i):
                max_episode = i
            else:
                return max_episode
        return max_episode
Exemplo n.º 3
0
from Data.PlayerData import get_is_mol
from Layers.Appearance.AppearanceExtractor import AppearanceExtractor
from Layers.Appearance.VideoParser import VideoParser, ParsedVideo
from scipy.stats import pearsonr, kendalltau
import itertools

TEST_SEASONS = {13, 14, 15, 16, 17, 18, 19, 20}

appearances = dict()
for season in TEST_SEASONS:
    for episode in itertools.count(1):
        parsed_video = VideoParser.load_parsed_video(season, episode)
        if parsed_video is None:
            break

        for player in parsed_video.alive_players:
            if not get_is_mol(player):
                appearance = AppearanceExtractor.get_relative_occurrence(player, parsed_video, [True])
                appearances[player] = appearances.get(player, []) + [appearance]

input = []
output = []
for player, features in appearances.items():
    for feat1, feat2 in itertools.combinations(features, 2):
        input.append(feat1)
        output.append(feat2)

r, p_value = pearsonr(input, output)
print("Pearson Test (Between):")
print("R value: " + str(r))
print("R-squared value: " + str(r ** 2))
Exemplo n.º 4
0
# Show at which frames each player occurs in a given episode.
from Data.PlayerData import get_name
from Layers.Appearance.VideoParser import VideoParser, ParsedVideo

SEASON = 17
EPISODE = 5

parsed_video = VideoParser.load_parsed_video(SEASON, EPISODE)
player_occurrences = parsed_video.player_occurrences
alive_players = parsed_video.alive_players

for player, occurrences in player_occurrences.items():
    if player in alive_players:
        print(get_name(player))
        print(sorted(list(occurrences)))

total_face_frames = 0
for player, occurrences in player_occurrences.items():
    if player in alive_players:
        total_face_frames += len(occurrences)

for player, occurrences in player_occurrences.items():
    if player in alive_players:
        print(get_name(player))
        print(len(occurrences) / total_face_frames)