Skip to content

platform_reader

data.dataset.platform_reader

request_vision_projects

request_vision_projects(ip: str, port: int, project_ids: List[int]) -> List[dict]

Data platform으로부터 project 정보들을 가져옵니다.

Parameters:

  • ip (str) –

    API서버에 접근하기 위한 IP 주소입니다.

  • port (int) –

    API서버에 접근하기 위한 PORT 번호입니다.

  • project_ids (list) –

    project 정보를 가져오기 위한 project_id의 list입니다.

Returns:

  • List[dict]

    List[dict]: project 정보를 dict형태로 저장한 list를 반환합니다.

    [
        {
            "project_id": int,
            "class_info": List[str],
            "dataset": {
                "train_images": {
                    "{image_id}": {
                        "path": str,
                        "width": int,
                        "height": int,
                        "client": str,    # Dataset metadata
                        "end_user": str,  # Dataset metadata
                        "domain": str,    # Dataset metadata
                        "class_index": int,  # CLS only have this key
                        "labels" : [         # DET, SEG only have this key
                            {
                                "class_index": int,
                                "bounding_box": List[int],   # DET only have this key
                                "contours": List[List[int]]  # SEG only have this key
                            },
                            ..., # times number of labels
                        ]
                    },
                    ..., # times number of images
                },
                "validation_images": {...},
                "Not split: {...}
            }
        },
        ...,    # times number of projects
    ]
    

Usage

projects = request_vision_projects("platform.saige.in", 8502, project_ids)

Source code in SaigeToolkit/data/dataset/platform_reader.py
def request_vision_projects(ip: str, port: int, project_ids: List[int]) -> List[dict]:
    """Data platform으로부터 project 정보들을 가져옵니다.

    Args:
        ip (str): API서버에 접근하기 위한 IP 주소입니다.
        port (int): API서버에 접근하기 위한 PORT 번호입니다.
        project_ids (list): project 정보를 가져오기 위한 project_id의 list입니다.

    Returns:
        List[dict]: project 정보를 dict형태로 저장한 list를 반환합니다.
            ```python
            [
                {
                    "project_id": int,
                    "class_info": List[str],
                    "dataset": {
                        "train_images": {
                            "{image_id}": {
                                "path": str,
                                "width": int,
                                "height": int,
                                "client": str,    # Dataset metadata
                                "end_user": str,  # Dataset metadata
                                "domain": str,    # Dataset metadata
                                "class_index": int,  # CLS only have this key
                                "labels" : [         # DET, SEG only have this key
                                    {
                                        "class_index": int,
                                        "bounding_box": List[int],   # DET only have this key
                                        "contours": List[List[int]]  # SEG only have this key
                                    },
                                    ..., # times number of labels
                                ]
                            },
                            ..., # times number of images
                        },
                        "validation_images": {...},
                        "Not split: {...}
                    }
                },
                ...,    # times number of projects
            ]
            ```

    Usage:
        >>> projects = request_vision_projects("platform.saige.in", 8502, project_ids)
    """
    projects = list()
    for project_id in project_ids:
        response = requests.get(f"http://{ip}:{port}/get_project/{project_id}")
        if response.status_code == 200:
            exported_project = response.json()
            projects.append(exported_project)
        else:
            print(response.text)

    return projects