datamaker-SDK 업로드(API)

datamake-SDK를 사용하여 데이터 불러오기

데이터메이커에서 제공하는 datamaker-SDK를 이용, API 방식으로 사용자가 보유한 데이터를 업로드하는 방법입니다.

python 언어로 직접 코딩하여 데이터를 업로드할 수 있습니다.



datamaker-SDK 설치

  • git을 사용한 설치

    > pip install git+https://github.com/datamaker-kr/datamaker-sdk.git
    
  • pypi를 사용한 설치

    > pip install datamaker-sdk
    



데이터 불러오기

  1. 데이터를 업로드하기 위하여 필요한 사용자 정보를 확인합니다.

    • 데이터메이커를 통해 전달받을 정보

      • host API 요청 주소
      • token_user 사용자 고유 토큰값
      • token_workspace 사용자의 워크스페이스 토큰값
    • 사용자가 확인할 정보

      • dataset_id 데이터셋 ID
      • project_id 프로젝트 ID
      • 데이터 경로
      • 데이터 파일 사양
  2. 사용자 정보를 알맞게 입력합니다.

    # 예시
    def import_dataset():
        host = 'https://platform.datamaker.io/api' # api 요청 주소
    
        token_user = '<사용자 고유 토큰값>' # 사용자 고유 토큰값
        token_workspace = '<사용자 워크스페이스 토큰값>' # 사용자 워크스페이스 토큰값
        dataset_id = 100 # 데이터셋 ID
        project_id = 100 # 프로젝트 ID
        client = Client(host, token_user, workspace_code=token_workspace) # Client 클래스 호출
        
    	dataset = prepare_dataset() 
        client.import_dataset(dataset_id, dataset, project_id=project_id, batch_size=500)
    
  3. 데이터셋 경로 및 구조를 정의합니다.

    • 단일 파일 구조 데이터셋 예시
      # 예시
      def prepare_dataset():
          paths_image = Path('path/to/image').rglob('*.jpg') # 데이터 경로 
          dataset = []
      
          for index, path in enumerate(paths_image):
              dataset.append({
                  'files': {
                      'image': path
                  }
              })
          return dataset
      
    • 복수 파일 구조 데이터셋 예시 데이터 파일들이 하나의 폴더에 존재할 때,

      example_dataset_folder

      ├── 1.jpg

      ├── 1.txt

      ├── 2.jpg

      ├── 2.txt
      ├── ….

      # 예시
      def prepare_dataset():
          path_import_dir = Path('path/example_dataset_folder')
          paths_image = path_import_dir.rglob('*.jpg')
          paths_text = path_import_dir.rglob('*.txt') # 데이터 경로 
      		
          dataset = []
      
          for path_image in paths_image:
      		extra_files = {}
      		path_text = path_image.with_suffix('.txt')
      		if path_text in paths_text:
      			extra_files['text'] = path_text
      
              dataset.append({
                  'files': {
                      'image': path_image,
      				** extra_files
                  }
              })
      
          return dataset
      
  4. 코드를 실행하여 데이터를 등록합니다.

    데이터 등록 완료