|
Safemotion Lib
|
Functions | |
| make_dummy_list (anno, num) | |
| check_invaild (anno_list, ratio) | |
| merge_pkl (folder, file_path_list=None) | |
| run_merge_pkl (args) | |
| check_label_v22 (anno_list, category, target_label, ratio=0.3) | |
| make_label_v22 (anno_list, category, category_margin_ratio) | |
| make_image_feat_data (anno_list, img_feats) | |
| gen_pkl_data_v22 (anno_list, train_category, category, target_label, category_margin_ratio, h, w, image_folder, img_feats=None) | |
| make_action_pkl_file_v22 (data_manager, train_category, category, target_label, category_margin_ratio, k, img_feat_dict=None) | |
| run_generate_pkl_data_from_json_v22 (args) | |
| generate_pkl_data_mtml.check_invaild | ( | anno_list, | |
| ratio ) |
데이터의 유효성 확인 기능
args:
anno_list (list[dict]): 확인하려는 데이터
valid : 유효성 파라미터, 1 or 0, 1이면 유효한 데이터, 0이면 유효하지 않는 데이터
ratio (float): 유효하지 않는 데이터 비율, 해당 비율보다 작으면 유효성 확인을 통과하지 못함
return (bool): 유효성 확인 결과, 유효성 확인을 통과하지 못하면 True, 통과하면 False
Definition at line 38 of file generate_pkl_data_mtml.py.
| generate_pkl_data_mtml.check_label_v22 | ( | anno_list, | |
| category, | |||
| target_label, | |||
| ratio = 0.3 ) |
데이터에 특정 카테고리의 특정 클래스가 존재하는지 확인하는 기능
args:
anno_list (list[dict]): 데이터
필수 데이터 : action_id에 라벨 이름(category)에 대한 키가 존재 해야함, 해당 키에 해당 프레임에서의 클래스 정보가 입력되어 있어야함
category (str): 데이터에서 확인하려는 카테고리
target_label (int): 데이터에서 확인하려는 클래스
ratio (float): 라벨 확인을 위한 데이터의 시작 위치(%), 클래스를 확인하는데 사용하는 전체 범위는 데이터 중앙의 (1-2*ratio) *100 %가 됨
return (bool): 원하는 클래스 존재 유무
Definition at line 86 of file generate_pkl_data_mtml.py.
| generate_pkl_data_mtml.gen_pkl_data_v22 | ( | anno_list, | |
| train_category, | |||
| category, | |||
| target_label, | |||
| category_margin_ratio, | |||
| h, | |||
| w, | |||
| image_folder, | |||
| img_feats = None ) |
학습을 위한 데이터 1개를 생성하는 기능
학습 카테고리별로 학습 클래스를 설정함
category(메인 카테고리)의 클래스는 데이터의 중심 40% 구간에 target_label이 존재하면 target_label로 설정됨, target_label이 존재하지 않는다면 데이터는 생성하지 않음
args:
anno_list (list[dict]): 어노테이션 데이터 리스트
train_category (list[str]): 학습 카테고리 리스트
category (str): 학습 데이터의 메인 카테고리
target_label (int): 메인 카테고리에 해당하는 타겟 클래스, target_label 정보가 존재해야 학습 데이터를 생성함
category_margin_ratio (dict): 카테고리별 클래스 결정을 위한 데이터의 시작 위치(%), 클래스를 결정하는데 사용하는 전체 범위는 데이터 중앙의 (1-2*ratio) *100 %가 됨
h (int): 원본 영상의 높이
w (int): 원본 영상의 너비
image_folder (str): 영상 폴더
img_feats (dict): 이미지 아이디에 대응하는 이미지 특징, 이미지 특징은 Tenosr 타입이고 shpae은 (C,)임, 파라미터를 설정하지 않으면 이미지 특징은 학습데이터에 포함하지 않음
return (dict): 학습데이터
keypoint (np.array): 스켈레톤 좌표
keypoint_score (np.array): 스켈레톤 스코어
frame_dir (str): 영상 폴더
img_shape (tuple): 원본 영상의 크기
original_shape (tuple): 원본 영상의 크기
total_frames (int): 데이터의 프레임 수
category (str): 샘플의 메인 카테고리
gt_{category_key} (int): 카테고리별 클래스
image_feature (Tensor): 이미지 특징, shape (T, C, 1)
Definition at line 215 of file generate_pkl_data_mtml.py.
| generate_pkl_data_mtml.make_action_pkl_file_v22 | ( | data_manager, | |
| train_category, | |||
| category, | |||
| target_label, | |||
| category_margin_ratio, | |||
| k, | |||
| img_feat_dict = None ) |
하나의 클립에서 학습 데이터를 생성하는 기능
학습 카테고리별로 학습 클래스를 설정함
args:
data_manager: AnnotationDataManager 객체, 어노테이션 데이터파일로 초기화까지 진행
train_category (list[str]): 학습 카테고리 리스트
category (str): 학습 데이터의 메인 카테고리
target_label (int): 메인 카테고리에 해당하는 타겟 클래스, target_label 정보가 존재해야 학습 데이터를 생성함
category_margin_ratio (dict): 카테고리별 클래스 결정을 위한 데이터의 시작 위치(%), 클래스를 결정하는데 사용하는 전체 범위는 데이터 중앙의 (1-2*ratio) *100 %가 됨
k (int): 하나의 데이터를 만드는데 사용하는 프레임 숫자
img_feat_dict (dict): 추적 아이디의 이미지 특징 데이터, 이미지 특징 데이터는 dict 구조로 이미지 아이디별 각 프레임에서의 이미지 특징을 담고 있음.
return (dict): 하나의 클립에 대한 학습 데이터 리스트, 학습 데이터는 추적 아이디별로 저장됨, 추적 아이디의 학습 데이터는 list[dict]의 구조임
Definition at line 282 of file generate_pkl_data_mtml.py.
| generate_pkl_data_mtml.make_dummy_list | ( | anno, | |
| num ) |
어노테이션 데이터를 복제해서 더미데이터 리스트를 생성하는 기능
args:
anno (dict): 복재하기 위한 어노테이션 데이터
num (int): 복제 수량
return (list[dict]): 더미데이터 리스트
Definition at line 14 of file generate_pkl_data_mtml.py.
| generate_pkl_data_mtml.make_image_feat_data | ( | anno_list, | |
| img_feats ) |
학습을 위한 이미지 특징을 생성하는 기능
args:
anno_list (list[dict]): 어노테이션 데이터 리스트, 각 항목은 'image_id'와 'valid' 키를 포함하고 있어야함
img_feats (dict): 이미지 아이디에 대응하는 이미지 특징, 이미지 특징은 Tenosr 타입이고 shpae은 (C,)임
return (Tensor): 데이터에 대한 이미지 특징, shape (T, C, 1)
Definition at line 179 of file generate_pkl_data_mtml.py.
| generate_pkl_data_mtml.make_label_v22 | ( | anno_list, | |
| category, | |||
| category_margin_ratio ) |
데이터의 클래스를 결정하는 기능
args:
anno_list (list[dict]): 어노테이션 데이터 리스트, 각 항목은 'action_id'키를 포함해야 하며, 이키는 해당 프레임의 클래스 정보를 담고 있는 category(리스트) 키들을 포함해야 함
category (list): 생성하려는 학습 데이터의 카테고리 리스트
category_margin_ratio (dict): 카테고리별 라벨 결정을 위한 데이터의 시작 위치(%), 클래스를 결정하는데 사용하는 전체 범위는 데이터 중앙의 (1-2*ratio) *100 %가 됨
return (dict): 카테고리별 데이터의 클래스, 유효성 검사나 클래스 확인이 어려운 경우 None을 반환함
Definition at line 126 of file generate_pkl_data_mtml.py.
| generate_pkl_data_mtml.merge_pkl | ( | folder, | |
| file_path_list = None ) |
학습데이터 파일들을 하나로 합치는 기능
args:
folder (str): 학습데이터가 저장된 폴더
file_path_list (list[str]) : 학습데이터 경로 리스트, 설정하지 않으면 folder에서 찾음
return (list[dict]): 합쳐진 학습 데이터
Definition at line 54 of file generate_pkl_data_mtml.py.
| generate_pkl_data_mtml.run_generate_pkl_data_from_json_v22 | ( | args | ) |
클립 정보를 담고있는 어노테이션 파일들을 사용해서 학습데이터를 만드는 기능
args:
category_k (dict): 카테고리별 학습데이터를 생성하는 프레임 수
train_category (list[str]): 학습 카테고리 리스트
category_margin_ratio (dict): 카테고리별 클래스 결정을 위한 데이터의 시작 위치(%), 클래스를 결정하는데 사용하는 전체 범위는 데이터 중앙의 (1-2*ratio) *100 %가 됨
data_root (str): 클립 정보를 담고있는 어노테이션 파일들이 저장된 폴더
pkl_root (str): 학습데이터를 저장할 폴더
image_feat_folder (str): 이미지 특징이 저장된 폴더
Definition at line 381 of file generate_pkl_data_mtml.py.
| generate_pkl_data_mtml.run_merge_pkl | ( | args | ) |
학습데이터 파일들을 하나로 합치고 저장하는 기능
args:
pkl_root (str): 학습데이터가 저장된 폴더
Definition at line 75 of file generate_pkl_data_mtml.py.