- safemotion의 데이터 생성 및 관리를 위한 라이브러리
구조
│ ├── smdataset
│ │ ├── gen_data
│ │ │ ├── run_files
| │ │ │ ├── run_gen_action_pkl.py
| │ │ │ ├── run_gen_clip_v22_mtml.py
| │ │ │ ├── run_gen_clip.py
| │ │ │ ├── run_gen_image_features.py
| │ │ │ ├── run_gen_pkl_v22_mtml.py
| │ │ │ ├── run_gen_pkl_v22.py
| │ │ │ ├── run_update_pose.py
│ │ │ ├── cvt_labelmap.py
│ │ │ ├── generate_clip_mtml.py
│ │ │ ├── generate_clip.py
│ │ │ ├── generate_image_features.py
│ │ │ ├── generate_pkl_data_mtml.py
│ │ │ ├── generate_pkl_data.py
│ │ │ ├── update_anno_pose.py
│ │ ├── AnnotationDataManager.py
│ │ ├── utils_data.py
│ │ ├── version_info.py
- gen_data : safemotion에서 자체 제작한 데이터를 기반으로 학습을 위한 데이터를 생성하는 기능
- AnnotationDataManager.py
- safemotion에서 자체 제작한 데이터를 순차적(프레임 기준) 읽는 기능
- safemotion에서 자체 제작한 데이터를 추적 아이디별로 읽는 기능
- safemotion에서 자체 제작한 데이터를 업데이트, 저장 등의 기능을 수행함
사용예시
- 프레임 순서대로 읽기
from smdataset.AnnotationDataManager import AnnotationDataManager
data_manager = AnnotationDataManager()
#데이터 매니저 초기화
data_manager.load_annotation(json_path, image_base=image_base)
data_manager.init_annotation()
while True:
#해당 프레임에 존재하는 어노테이션 데이터 읽기
anno_data = data_manager.get_anno_data_in_image(filter=True)
#이미지 로드
image = data_manager.read_image()
...
#마지막 프레임일경우 종료
if data_manager.get_number_of_image() <= (data_manager.image_idx+1):
break
#다음프레임으로 이동
data_manager.move_image_right()
#프레임 아이디 증가
frame_id+=1
- 전체 데이터를 추적아이디 별로 읽기
from smdataset.AnnotationDataManager import AnnotationDataManager
data_manager = AnnotationDataManager()
#데이터 매니저 초기화
data_manager.load_annotation(json_path)
data_manager.init_annotation()
#추적 아이디를 기준으로 데이터 읽기
track_data = data_manager.get_track_anno_data(filter=True, start_frame=start_frame, end_frame=end_frame+1)
#데이터 순회
for track_id, anno_list in track_data.items():
...
...
TODO
- 상호행동인식을 위한 학습데이터 생성 기능 구현(클립, 피클)
- 레이블 맵 관리하는 방법 제시 필요