2021-07-06 JG Statistics enhancements
- JG Statistics 결과
- 결과물
- File_Name: 입력 비디오 파일 이름
- First_Pos: 정글러가 최초로 간 위치 (1: Top, 2:Mid, 3:Bot, 4:Counter JG)
- Frame_Index: First_Pos에 도달했을 때의 frame index (추후 경기 시간으로 변경 예정)
- Opposite_JG_ID: 상대 정글러의 챔피언 ID
- 값이 -1인 경우는 오류가 발생한 경우 (위치 탐색 실패)
- 보조 결과물 (vis)
-
각 영상에서 최초 위치를 발견하였을 때의 frame에 정글러의 위치를 표시하여 시각화한 결과도 함께 제공
- JG Statistics 코드
-
통계값을 얻고자 하는 챔피언의 이름으로 된 폴더에 webm 파일 저장
-
해당 폴더 경로를 –video_dir 파라미터로 넣어주면 해당 영상들에 대한 정보를 csv로 추출하여 저장
-
main 파일: jg_statistics.py
video_list = glob(os.path.join(args.video_dir, '*.webm')) champ_dict = get_champ_icons(args.champ_dir) pos_labels, first_frame_idcs, vis_imgs, opposite_names = [], [], [], [] for video_path in video_list: # Load a input video frames = load_video(video_path, args.max_frames) # Champion ID information champ_ID_df = pd.read_csv(args.champ_csv) champ_ID_dict = champ_ID_df.set_index('ID').to_dict()['Name'] # Get the base icons of all champions from the disk icons = get_all_icons_in_frame(frames[0]) icon_dict = match_icons(icons, champ_dict, champ_ID_df, args.query_size, ICON_SIZE) # Get target jg name and opposite jg name target_champ_w_team = [name for name in icon_dict.keys() if args.target_champ in name][0] if target_champ_w_team.endswith('_B'): side_icon = icons[1] opposite_jg_name = list(icon_dict.keys())[6].replace('_R', '') if target_champ_w_team.endswith('_R'): side_icon = icons[6] opposite_jg_name = list(icon_dict.keys())[1].replace('_B', '') icon_query = icon_dict[target_champ_w_team][0] opposite_jg_ID = champ_ID_df[champ_ID_df['Name'] == opposite_jg_name].ID.values[0] # main jg_pos_df, minimap_size = convert_single_champ_to_csv(target_champ_w_team, frames, side_icon, icon_query, args.crop_pxs, args.top_k, args.skip_interval) minimap_w_line = get_separate_line_and_jg_map(minimap_size, team=target_champ_w_team.split('_')[-1]) jg_first_pos_label, first_frame_idx, (x,y) = get_the_first_jg_pos_and_frame_idx(jg_pos_df, minimap_w_line) if first_frame_idx != -1: jg_pos_vis = get_jg_pos_vis(frames, first_frame_idx, x, y) else: jg_pos_vis = None pos_labels.append(jg_first_pos_label) first_frame_idcs.append(first_frame_idx) vis_imgs.append(jg_pos_vis) opposite_names.append(opposite_jg_ID) export_jg_statistics(args.output_dir, video_list, pos_labels, first_frame_idcs, opposite_names, vis_imgs)
-