|
Safemotion Lib
|
Functions | |
| make_dummy_list (anno, num) | |
| check_invaild (anno_list, ratio) | |
| calc_label (anno_list, ratio=0.3, valid_ratio=0.5) | |
| gen_pkl_data (anno_list, h, w, image_folder) | |
| gen_pkl_data_ver2 (anno_list, h, w, image_folder) | |
| gen_pkl_data_ver3 (anno_list, h, w, image_folder) | |
| gen_pkl_data_dual (anno_list, h, w, image_folder, data_manager) | |
| make_action_pkl_file (data_manager, k, mode=None) | |
| make_action_pkl_file_dual (data_manager, k) | |
| split_from_action (data_list) | |
| split_from_pose (data_list) | |
| run_generate_pkl_data_from_json (args) | |
| merge_pkl (folder, file_path_list=None) | |
| run_merge_pkl (args) | |
| check_label_v22 (anno_list, category, target_label, ratio=0.3) | |
| gen_pkl_data_v22 (anno_list, category, target_label, h, w, image_folder) | |
| make_action_pkl_file_v22 (data_manager, category, target_label, k) | |
| run_generate_pkl_data_from_json_v22 (args) | |
| generate_pkl_data.calc_label | ( | anno_list, | |
| ratio = 0.3, | |||
| valid_ratio = 0.5 ) |
데이터의 클래스를 결정하는 기능
args:
anno_list (list[dict]): 데이터
필수 데이터 : action_id에 action 키가 존재 해야함, 해당 키에 해당 프레임에서의 클래스 정보가 입력되어 있어야함
ratio (float): 라벨 결정을 위한 데이터의 시작 위치(%), 클래스를 결정하는데 사용하는 전체 범위는 데이터 중앙의 (1-2*ratio) *100 %가 됨
valid_ratio (float): 유효하지 않는 데이터 비율, 해당 비율보다 작으면 유효성 확인을 통과하지 못함, 클래스 결정을 위한 구간에서 유효성 검사
return (int): 데이터의 클래스, 유효성 검사나 클래스 확인이 어려운 경우 None을 반환함
Definition at line 52 of file generate_pkl_data.py.
| generate_pkl_data.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 37 of file generate_pkl_data.py.
| generate_pkl_data.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 574 of file generate_pkl_data.py.
| generate_pkl_data.gen_pkl_data | ( | anno_list, | |
| h, | |||
| w, | |||
| image_folder ) |
학습을 위한 데이터 1개를 생성하는 기능
데이터의 최근 3개의 프레임으로 클래스를 결정함
args:
anno_list (list[dict]): 데이터
h (int): 원본 영상의 높이
w (int): 원본 영상의 너비
image_folder (str): 영상 폴더
return (dict): 학습데이터
keypoint (np.array): 스켈레톤 좌표
keypoint_score (np.array): 스켈레톤 스코어
frame_dir (str): 영상 폴더
img_shape (tuple): 원본 영상의 크기
original_shape (tuple): 원본 영상의 크기
total_frames (int): 데이터의 프레임 수
label (int): 샘플의 클래스 번호
Definition at line 97 of file generate_pkl_data.py.
| generate_pkl_data.gen_pkl_data_dual | ( | anno_list, | |
| h, | |||
| w, | |||
| image_folder, | |||
| data_manager ) |
Definition at line 260 of file generate_pkl_data.py.
| generate_pkl_data.gen_pkl_data_v22 | ( | anno_list, | |
| category, | |||
| target_label, | |||
| h, | |||
| w, | |||
| image_folder ) |
학습을 위한 데이터 1개를 생성하는 기능
특정 카테고리의 특정 클래스에 해당하는 데이터를 생성함
데이터의 중심 40% 구간을 확인해서 클래스를 설정함
args:
anno_list (list[dict]): 데이터
category (str): 데이터에서 확인하려는 카테고리
target_label (int): 데이터에서 확인하려는 클래스
h (int): 원본 영상의 높이
w (int): 원본 영상의 너비
image_folder (str): 영상 폴더
return (dict): 학습데이터
keypoint (np.array): 스켈레톤 좌표
keypoint_score (np.array): 스켈레톤 스코어
frame_dir (str): 영상 폴더
img_shape (tuple): 원본 영상의 크기
original_shape (tuple): 원본 영상의 크기
total_frames (int): 데이터의 프레임 수
category (str): 샘플의 카테고리
label (int): 샘플의 클래스 번호
Definition at line 615 of file generate_pkl_data.py.
| generate_pkl_data.gen_pkl_data_ver2 | ( | anno_list, | |
| h, | |||
| w, | |||
| image_folder ) |
학습을 위한 데이터 1개를 생성하는 기능
데이터의 중심 40% 구간에서 클래스를 결정함
args:
anno_list (list[dict]): 데이터
h (int): 원본 영상의 높이
w (int): 원본 영상의 너비
image_folder (str): 영상 폴더
return (dict): 학습데이터
keypoint (np.array): 스켈레톤 좌표
keypoint_score (np.array): 스켈레톤 스코어
frame_dir (str): 영상 폴더
img_shape (tuple): 원본 영상의 크기
original_shape (tuple): 원본 영상의 크기
total_frames (int): 데이터의 프레임 수
label (int): 샘플의 클래스 번호
Definition at line 151 of file generate_pkl_data.py.
| generate_pkl_data.gen_pkl_data_ver3 | ( | anno_list, | |
| h, | |||
| w, | |||
| image_folder ) |
학습을 위한 데이터 1개를 생성하는 기능
행동 클래스와, 포즈 클래스를 설정함
행동 클래스는 데이터의 중심 40% 구간에서 클래스를 결정함
포즈 클래스는 데이터의 마지막 프레임으로 결정함
args:
anno_list (list[dict]): 데이터
h (int): 원본 영상의 높이
w (int): 원본 영상의 너비
image_folder (str): 영상 폴더
return (dict): 학습데이터
keypoint (np.array): 스켈레톤 좌표
keypoint_score (np.array): 스켈레톤 스코어
frame_dir (str): 영상 폴더
img_shape (tuple): 원본 영상의 크기
original_shape (tuple): 원본 영상의 크기
total_frames (int): 데이터의 프레임 수
label_action (int): 샘플의 행동 클래스 번호
label_pose (int): 샘플의 포즈 클래스 번호
Definition at line 199 of file generate_pkl_data.py.
| generate_pkl_data.make_action_pkl_file | ( | data_manager, | |
| k, | |||
| mode = None ) |
하나의 클립에서 학습 데이터를 생성하는 기능
args:
data_manager: AnnotationDataManager 객체, 어노테이션 데이터파일로 초기화까지 진행
k (int): 하나의 데이터를 만드는데 사용하는 프레임 숫자
mode (str): 단일 라벨 데이터인지 다중 라벨 데이터인지 설정하는 파라미터
'sc' : 단일 라벨 데이터
'mc' : 다중 라벨 데이터
return (dict): 하나의 클립에 대한 학습 데이터 리스트, 학습 데이터는 추적 아이디별로 저장됨, 추적 아이디의 학습 데이터는 list[dict]의 구조임
Definition at line 306 of file generate_pkl_data.py.
| generate_pkl_data.make_action_pkl_file_dual | ( | data_manager, | |
| k ) |
Definition at line 401 of file generate_pkl_data.py.
| generate_pkl_data.make_action_pkl_file_v22 | ( | data_manager, | |
| category, | |||
| target_label, | |||
| k ) |
하나의 클립에서 학습 데이터를 생성하는 기능
카테고리의 특정 클래스에 대한 데이터를 생성함
args:
data_manager: AnnotationDataManager 객체, 어노테이션 데이터파일로 초기화까지 진행
category (str): 데이터에서 확인하려는 카테고리
target_label (int): 데이터에서 확인하려는 클래스
k (int): 하나의 데이터를 만드는데 사용하는 프레임 숫자
return (dict): 하나의 클립에 대한 학습 데이터 리스트, 학습 데이터는 추적 아이디별로 저장됨, 추적 아이디의 학습 데이터는 list[dict]의 구조임
Definition at line 667 of file generate_pkl_data.py.
| generate_pkl_data.make_dummy_list | ( | anno, | |
| num ) |
어노테이션 데이터를 복제해서 더미데이터 리스트를 생성하는 기능
args:
anno (dict): 복재하기 위한 어노테이션 데이터
num (int): 복제 수량
return (list[dict]): 더미데이터 리스트
Definition at line 13 of file generate_pkl_data.py.
| generate_pkl_data.merge_pkl | ( | folder, | |
| file_path_list = None ) |
학습데이터 파일들을 하나로 합치는 기능
args:
folder (str): 학습데이터가 저장된 폴더
file_path_list (list[str]) : 학습데이터 경로 리스트, 설정하지 않으면 folder에서 찾음
return (list[dict]): 합쳐진 학습 데이터
Definition at line 542 of file generate_pkl_data.py.
| generate_pkl_data.run_generate_pkl_data_from_json | ( | args | ) |
클립 정보를 담고있는 어노테이션 파일들을 사용해서 학습데이터를 만드는 기능
args:
pkl_root (str): 학습데이터를 저장할 폴더
dataset_folder (str): 클립 정보를 담고있는 어노테이션 파일들이 저장된 폴더
k (int): 학습데이터를 생성하는 프레임 수
mode (str): 단일 라벨 데이터인지 다중 라벨 데이터인지 설정하는 파라미터
'sc' : 단일 라벨 데이터
'mc' : 다중 라벨 데이터
Definition at line 490 of file generate_pkl_data.py.
| generate_pkl_data.run_generate_pkl_data_from_json_v22 | ( | args | ) |
클립 정보를 담고있는 어노테이션 파일들을 사용해서 학습데이터를 만드는 기능
args:
category_k (dict): 카테고리별 학습데이터를 생성하는 프레임 수
data_root (str): 클립 정보를 담고있는 어노테이션 파일들이 저장된 폴더
pkl_root (str): 학습데이터를 저장할 폴더
Definition at line 756 of file generate_pkl_data.py.
| generate_pkl_data.run_merge_pkl | ( | args | ) |
학습데이터 파일들을 하나로 합치고 저장하는 기능
args:
pkl_root (str): 학습데이터가 저장된 폴더
merge_pkl_path (str): 합쳐진 데이터를 하나의 파일로 저장하는 경로
Definition at line 562 of file generate_pkl_data.py.
| generate_pkl_data.split_from_action | ( | data_list | ) |
학습 데이터를 행동 클래스에 따라서 분리하는 기능
args:
data_list (list[dict]): 학습 데이터 리스트, 데이터에는 label or label_action 키에 대한 값이 존재해야함
return (list[dict]) : 행동 클래스를 기준으로 분리된 학습 데이터
Definition at line 454 of file generate_pkl_data.py.
| generate_pkl_data.split_from_pose | ( | data_list | ) |
학습 데이터를 포즈 클래스에 따라서 분리하는 기능
args:
data_list (list[dict]): 학습 데이터 리스트, 데이터에는 label_pose 키에 대한 값이 존재해야함
return (list[dict]) : 포즈 클래스를 기준으로 분리된 학습 데이터
Definition at line 473 of file generate_pkl_data.py.