|
Safemotion Lib
|
Public Attributes | |
| json_version | |
| label_map_version | |
| save_path | |
Static Public Attributes | |
| int | json_version = 10 |
| anno_path = None | |
| image_base_path = None | |
| base_path = None | |
| dataset = None | |
| anno_in_image = None | |
| anno_ids = None | |
| image_ids = None | |
| image_filenames = None | |
| image_idx = None | |
| image_id = None | |
| anno_idx = None | |
| anno_id = None | |
| anno_idx_in_image = None | |
세이프모션 행동 데이터를 관리하는 클래스
데이터 불러오기, 저장하기, 업데이트(데이터 변경), 프레임단위로 데이터 get, 추적 아이디 단위로 get 등의 기능 제공
args:
anno_path (str) : 어노테이션 파일(json 파일) 경로
save_path (str) : 저장 경로, 설정하지 않으면 anno_path에 저장됨
Definition at line 11 of file AnnotationDataManager.py.
| AnnotationDataManager.AnnotationDataManager.__init__ | ( | self, | |
| anno_path = None, | |||
| save_path = None ) |
Definition at line 35 of file AnnotationDataManager.py.
| AnnotationDataManager.AnnotationDataManager.batch_update_annotation_data | ( | self, | |
| key, | |||
| value, | |||
| new_anno, | |||
| frame_range = None ) |
조건에 맞는 어노테이션을 모두 업데이트하는 기능
프레임 범위를 설정할 수 있음
args:
key : 조건의 키
value : 조건
new_anno : 업데이트하려는 어노테이션 데이터
frame_range : 업데이트하려는 프레임 범위, 범위를 설정하지 않는다면 전체 범위로 설정됨
Definition at line 580 of file AnnotationDataManager.py.
| AnnotationDataManager.AnnotationDataManager.check_anno_pose_in_frame | ( | self, | |
| check_index ) |
현재 프레임에서 현재 선택되어 있는 어노테이션(박스)이 처음인지 마지막인지 확인하는 기능
args:
check_index (int) : 첫프레임 체크인지 마지막 프레임 체크인지 설정하는 파라미터
0 : 첫프레임인지 확인
-1 : 마지막 프레임인지 확인
return (bool): 확인 정보
Definition at line 276 of file AnnotationDataManager.py.
| AnnotationDataManager.AnnotationDataManager.check_modified_image | ( | self | ) |
현재 프레임이 수정된 상태인 확인하는 기능 return (bool): 수정 유무
Definition at line 291 of file AnnotationDataManager.py.
| AnnotationDataManager.AnnotationDataManager.check_same_track_id | ( | self, | |
| track_id ) |
현재 프레임에 동일한 track_id 존재 유무 확인 기능(현재 선택된 객체는 제외하고 체크함) return (bool): 추적 아이디 존재 유무
Definition at line 303 of file AnnotationDataManager.py.
| AnnotationDataManager.AnnotationDataManager.cvt_data_format | ( | self, | |
| dataset ) |
프레임 단위로 데이터 구조를 변경하는 기능
args:
dataset (dict) : 어노테이션 데이터
info : json 파일의 기본 정보가 들어있음
images : 이미지 아이디, 이름 및 기타 정보
annotations : 라벨링된 데이터, 박스마다 데이터가 들어있음
대표 정보 : 어노테이션 아이디, 박스정보(x, y, w, h), 키포인트, 액션 라벨 등
return:
anno_in_image (dict): 프레임 단위로 어노테이션(박스) 정보를 저장한 변수
key (int): 이미지 아이디
value (list[dict]): 해당 프레임의 어노테이션(박스) 정보 리스트
anno_ids (list): 어노테이션 아이디 리스트
image_ids (list): 이미지 아이디 리스트
image_filenames (list): 이미지 이름 리스트
Definition at line 104 of file AnnotationDataManager.py.
| AnnotationDataManager.AnnotationDataManager.delete_annotation_data | ( | self | ) |
현재 선택된 어노테이션을 삭제하는 기능
Definition at line 553 of file AnnotationDataManager.py.
| AnnotationDataManager.AnnotationDataManager.get_anno_data | ( | self | ) |
현재 선택된 어노테이션(박스) 정보를 출력하는 기능 return (dict) : 어노테이션 정보(박스, 키포인트, 행동라벨 등)
Definition at line 368 of file AnnotationDataManager.py.
| AnnotationDataManager.AnnotationDataManager.get_anno_data_in_image | ( | self, | |
| image_idx = None, | |||
| key = None, | |||
| value = None, | |||
| filter = False ) |
입력한 이미지 인덱스의 데이터에서 설정한 데이터에 부합하는 어노테이션 정보를 출력하는 기능
args:
image_idx (int) : 검색하려는 이미지 인덱스, 설정하지 않는다면 현재 프레임이됨
key (str) : 확인하려는 데이터의 키, 설정하지 않으면 필저링 조건만 체크함
value : 확인하려는 데이터의 값
filter (str) : 필터링 유무, 가려짐, 잘림 정도로 필터, Fasle로 설정하면 검색하려는 프레임의 모든 어노테이션 데이터를 반환함
return (list[dict] or dict):
필터링 조건을 통과한 어노테이션 리스트
또는 조건에 부합하는 어노테이션
조건에 부합하는 데이터가 없을경우 None을 반환함
Definition at line 377 of file AnnotationDataManager.py.
| AnnotationDataManager.AnnotationDataManager.get_anno_data_list | ( | self | ) |
현재 프레임의 모든 어노테이션(박스)정보를 출력하는 기능
return:
bbox_list (list[list]) : 박스위치 정보 리스트, [x, y, w, h]
action_id_list (list[dict]) : 행동라벨 리스트
track_id_list (list[int]) : 추적 아이디 리스트
keypoints_list (list[np.array]) : 스켈레톤 좌표정보 리스트(x, y, score), shape (17, 3)
Definition at line 345 of file AnnotationDataManager.py.
| AnnotationDataManager.AnnotationDataManager.get_anno_index | ( | self, | |
| image_id, | |||
| anno_idx_at_image ) |
설정한 프레임에 존재하는 어노테이션들 중 특정 인덱스(이미지 기준 변환 데이터)에 해당하는 어노테이션의 인덱스(원본 어노테이션 기준)를 반환하는 기능
args:
image_id (int): 검색하려는 이미지 아이디
anno_idx_at_image (int): 해당 프레임에서의 이미지 인덱스
return (int) : 어노테이션 인덱스
Definition at line 647 of file AnnotationDataManager.py.
| AnnotationDataManager.AnnotationDataManager.get_anno_index_in_image | ( | self, | |
| anno_id, | |||
| image_id ) |
설정한 프레임에서 특정 어노테이션 아이디의 인덱스를 반환하는 기능
args:
anno_id (int) : 검색하려는 어노테이션 아이디
image_id (int) : 검색하려는 이미지 아이디
return (int) : 어노테이션 인덱스
Definition at line 633 of file AnnotationDataManager.py.
| AnnotationDataManager.AnnotationDataManager.get_image_folder | ( | self | ) |
어노테이션 정보에 대응하는 이미지가 저장되어있는 폴더를 반환하는 기능 return (str): 이미지 폴더
Definition at line 664 of file AnnotationDataManager.py.
| AnnotationDataManager.AnnotationDataManager.get_image_name | ( | self, | |
| image_id = None ) |
특정 이미지의 이름을 반환하는 기능
args:
image_id (int) : 이름을 원하는 이미지의 아이디, 설정하지 않는다면 현재 설정된 이미지의 이름을 반환함
return (str): 이미지 이름
Definition at line 689 of file AnnotationDataManager.py.
| AnnotationDataManager.AnnotationDataManager.get_image_path | ( | self, | |
| image_idx = None ) |
특정 이미지 경로를 반환하는 기능
args:
image_idx (int): 경로를 원하는 이미지의 인덱스, 설정하지 않는다면 현재 설정된 이미지의 경로를 반환함
return (str): 이미지 경로
Definition at line 671 of file AnnotationDataManager.py.
| AnnotationDataManager.AnnotationDataManager.get_number_of_anno | ( | self | ) |
어노테이션(박스) 수량을 출력하는 기능 return (int) : 어노테이션(박스) 수량
Definition at line 322 of file AnnotationDataManager.py.
| AnnotationDataManager.AnnotationDataManager.get_number_of_anno_in_image | ( | self | ) |
현재 프레임의 어노테이션(박스) 수량을 출력하는 기능 return (int) : 현재 프레임의 어노테이션(박스) 수량
Definition at line 336 of file AnnotationDataManager.py.
| AnnotationDataManager.AnnotationDataManager.get_number_of_image | ( | self | ) |
이미지 수량을 출력하는 기능 return (int) : 이미지 수량
Definition at line 329 of file AnnotationDataManager.py.
| AnnotationDataManager.AnnotationDataManager.get_prev_anno_data | ( | self, | |
| key, | |||
| value ) |
설정되어 있는 프레임보다 이전 프레임에서 데이터를 검색하는 기능
가장 가까운 프레임의 데이터를 반환함
args:
key (str): 확인하려는 데이터의 키
value : 확인하려는 데이터의 값
return (dict)):
조건에 부합하는 데이터
조건에 부합하는 데이터가 없을경우 None을 반환함
Definition at line 411 of file AnnotationDataManager.py.
| AnnotationDataManager.AnnotationDataManager.get_save_path | ( | self | ) |
어노테이션 파일 저장 경로를 반환하는 기능
Definition at line 725 of file AnnotationDataManager.py.
| AnnotationDataManager.AnnotationDataManager.get_scenario_number | ( | self | ) |
Definition at line 735 of file AnnotationDataManager.py.
| AnnotationDataManager.AnnotationDataManager.get_track_anno_data | ( | self, | |
| filter = False, | |||
| start_frame = 0, | |||
| end_frame = None ) |
설정한 프레임 구간에서 모든 어노테이션의 추적 아이디 정보를 반환하는 기능
args:
filter (bool) : 필터링 유무, 가려짐, 잘림 정도로 필터
start_frame (int) : 검색하려는 시작 프레임 인덱스
end_frame (int) : 검색하려는 끝 프레임 인덱스(해당 인덱스를 포함하지 않음), 설정하지 않으면 맨 마지막 프레임까지 범위로 설정됨
return (dict) : 추적 아이디를 기준으로 변환된 어노테이션 정보
key (int): 추적 아이디
value (list[dict]): 추적 아이디의 어노테이션 리스트
Definition at line 446 of file AnnotationDataManager.py.
| AnnotationDataManager.AnnotationDataManager.get_track_info | ( | self | ) |
모든 추적 아이디에 대해서 추적 아이디가 처음 등장하는 프레임과 등장하는 프레임 수를 반환하는 기능
return (dict): 추적 아이디의 정보
key (int): 추적 아이디
value (list): 첫번째 인자는 추적아이디가 등장하는 첫 프레임 인덱스, 두번째 인자는 추적아이디가 등장하는 프레임 수
Definition at line 431 of file AnnotationDataManager.py.
| AnnotationDataManager.AnnotationDataManager.init | ( | self | ) |
초기화 함수, 멤버변수 값을 초기화 함
Definition at line 40 of file AnnotationDataManager.py.
| AnnotationDataManager.AnnotationDataManager.init_annotation | ( | self | ) |
현재 프레임 정보 초기화 기능 맨 첫프레임, 첫번째 어노테이션(박스) 정보로 셋팅함 첫프레임에 어노테이션 정보가 없다면 관련 변수는 None으로 셋팅됨
Definition at line 144 of file AnnotationDataManager.py.
| AnnotationDataManager.AnnotationDataManager.insert_annotation_data | ( | self | ) |
더미 어노테이션을 추가하는 기능
Definition at line 491 of file AnnotationDataManager.py.
| AnnotationDataManager.AnnotationDataManager.insert_annotation_data_by_prev_anno | ( | self, | |
| track_id ) |
입력한 추적 아이디의 어노테이션을 추가하는 기능 이전 프레임에서 해당 추적 아이디 정보를 복사해서 추가함, 이전 프레임에 해당 추적 아이디가 없다면 더미 데이터를 추가함
Definition at line 516 of file AnnotationDataManager.py.
| AnnotationDataManager.AnnotationDataManager.load_annotation | ( | self, | |
| anno_path, | |||
| image_base = None, | |||
| program_label_map_version = None, | |||
| save_path = None ) |
어노테이션 파일 로드
데이터를 로드하고 프레임 단위로 데이터 구조를 변경해둠
args:
anno_path (str) : json 파일의 경로
image_base (str) : 이미지 베이스 경로 설정 가능, 설정하지 않으면 기본 디폴트 값을 사용함
program_label_map_version (str) : 라벨링 프로그램의 레이블맵 버전, 설정하지 않는다면 json 파일에 값을 사용
save_path (str) : 저장 경로 설정, 설정하지 않는다면 anno_path로 설정됨
Definition at line 66 of file AnnotationDataManager.py.
| AnnotationDataManager.AnnotationDataManager.move_anno_left | ( | self | ) |
이전 어노테이션(박스)로 이동함 return (bool): 이미지 변경 유무
Definition at line 244 of file AnnotationDataManager.py.
| AnnotationDataManager.AnnotationDataManager.move_anno_right | ( | self | ) |
다음 어노테이션(박스)로 이동함 return (bool): 이미지 변경 유무
Definition at line 231 of file AnnotationDataManager.py.
| AnnotationDataManager.AnnotationDataManager.move_image_left | ( | self, | |
| use_track_id = False ) |
이전 이미지로 이동함
Definition at line 265 of file AnnotationDataManager.py.
| AnnotationDataManager.AnnotationDataManager.move_image_right | ( | self, | |
| use_track_id = False ) |
다음 이미지로 이동함
Definition at line 257 of file AnnotationDataManager.py.
| AnnotationDataManager.AnnotationDataManager.read_image | ( | self | ) |
현재 설정된 이미지를 로드하는 기능 return (np.array): RGB 이미지
Definition at line 705 of file AnnotationDataManager.py.
| AnnotationDataManager.AnnotationDataManager.save_annotation | ( | self | ) |
데이터 저장 기능
Definition at line 137 of file AnnotationDataManager.py.
| AnnotationDataManager.AnnotationDataManager.set_anno_idx_in_image | ( | self, | |
| anno_idx_in_image ) |
현재 프레임의 어노테이션(박스) 인덱스 기준으로 관련 데이터를 셋팅함
args:
anno_idx_in_image (int) : 설정하기 위한 현재 프레임의 어노테이션(박스) 인덱스
Definition at line 166 of file AnnotationDataManager.py.
| AnnotationDataManager.AnnotationDataManager.set_annotation_by_anno_index | ( | self, | |
| anno_idx ) |
어노테이션(박스) 인덱스 기준으로 현재 정보를 셋팅함
args:
anno_idx (int) : 셋팅하려는 어노테이션(박스) 인덱스
return (bool): 이미지 변경 유무
Definition at line 177 of file AnnotationDataManager.py.
| AnnotationDataManager.AnnotationDataManager.set_annotation_by_image_index | ( | self, | |
| image_idx, | |||
| use_track_id = False ) |
이미지 인덱스를 기준으로 현재 정보를 셋팅함
추적아이디 사용을 설정하면 현재 선택된 추적아이디와 같은 어노테이션 정보로 셋팅함
args:
image_idx (int) : 셋팅하려는 이미지 인덱스
use_track_id (bool) : 추적아이디 사용 여부
return (bool): 이미지 변경 유무
Definition at line 194 of file AnnotationDataManager.py.
| AnnotationDataManager.AnnotationDataManager.set_annotation_data | ( | self, | |
| anno ) |
현재 선택된 어노테이션 정보를 입력 데이터로 업데이트하는 기능
args:
anno (dict) : 업데이트 하려는 정보, anno에 포함된 키값의 데이터만 업데이트함
Definition at line 480 of file AnnotationDataManager.py.
| AnnotationDataManager.AnnotationDataManager.update_annotation_data | ( | self, | |
| key, | |||
| data ) |
현재 선택된 어노테이션션 데이터를 업데이트하는 기능
args:
key : 업데이트하려는 데이터의 키
data : 업데이트하려는 데이터
Definition at line 570 of file AnnotationDataManager.py.
| AnnotationDataManager.AnnotationDataManager.update_annotation_data_by_anno_id | ( | self, | |
| anno_id, | |||
| key, | |||
| data, | |||
| anno = None ) |
입력한 어노테이션 아이디에 해당하는 정보를 업데이트하는 기능
args:
anno_id (int): 업데이트하려는 어노테이션 아이디
key : 데이터의 키
data : 업데이트하려는 데이터
anno (dict)) : 업데이트하려는 데이터, 여러 데이터를 업데이트 하고싶을 때 사용
anno를 설정하지 않을 경우 아이디에 해당하는 데이터의 key의 정보를 data로 업데이트함
Definition at line 607 of file AnnotationDataManager.py.
|
static |
Definition at line 32 of file AnnotationDataManager.py.
|
static |
Definition at line 25 of file AnnotationDataManager.py.
|
static |
Definition at line 31 of file AnnotationDataManager.py.
|
static |
Definition at line 33 of file AnnotationDataManager.py.
|
static |
Definition at line 24 of file AnnotationDataManager.py.
|
static |
Definition at line 20 of file AnnotationDataManager.py.
|
static |
Definition at line 22 of file AnnotationDataManager.py.
|
static |
Definition at line 23 of file AnnotationDataManager.py.
|
static |
Definition at line 21 of file AnnotationDataManager.py.
|
static |
Definition at line 27 of file AnnotationDataManager.py.
|
static |
Definition at line 30 of file AnnotationDataManager.py.
|
static |
Definition at line 26 of file AnnotationDataManager.py.
|
static |
Definition at line 29 of file AnnotationDataManager.py.
|
static |
Definition at line 19 of file AnnotationDataManager.py.
| AnnotationDataManager.AnnotationDataManager.json_version |
Definition at line 46 of file AnnotationDataManager.py.
| AnnotationDataManager.AnnotationDataManager.label_map_version |
Definition at line 47 of file AnnotationDataManager.py.
| AnnotationDataManager.AnnotationDataManager.save_path |
Definition at line 49 of file AnnotationDataManager.py.