출력 데이터 - 아마존 SageMaker

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

출력 데이터

레이블 지정 작업의 출력은 콘솔 또는 CreateLabelingJob 작업에 대한 호출에서 지정한 Amazon S3 위치에 저장됩니다. 작업자가 하나 이상의 태스크를 제출했거나 태스크가 만료되면 출력 데이터가 이 위치에 나타납니다. 작업자가 태스크를 제출하거나 태스크가 만료된 후 출력 데이터가 Amazon S3에 표시되는 데 몇 분 정도 걸릴 수 있습니다.

출력 데이터 파일의 각 행은 매니페스트 파일과 동일한데, 입력 객체에 할당된 레이블의 속성과 값이 추가되어 있습니다. 값의 속성 이름을 콘솔에서 또는 CreateLabelingJob 작업 호출 시 정의합니다. 레이블 속성 이름에는 -metadata를 사용할 수 없습니다. 이미지 의미 체계 분할, 3D 포인트 클라우드 의미 체계 분할 또는 3D 포인트 클라우드 객체 추적 작업을 실행 중인 경우, 레이블 속성은 -ref로 끝나야 합니다. 그 외 작업 유형의 경우 속성 이름은 -ref로 끝날 수 없습니다.

레이블 지정 작업의 출력은 레이블이 포함된 키-값 페어의 값입니다. 레이블과 그 값은 입력 파일의 기존 JSON 데이터를 새 값으로 덮어씁니다.

예를 들어, 다음은 입력 데이터 파일이 Amazon S3 AWSDOC-EXAMPLE-BUCKET에 저장되어 있고 레이블 속성 이름이 sport로 정의된 이미지 분류 레이블 지정 작업의 출력입니다. 이 예제에서 JSON 객체는 가독성을 위해 형식이 지정되어 있고, 실체 출력 파일에서 JSON 객체는 단일 행에 있습니다. 데이터 형식에 대한 자세한 정보는 JSON 행을 참조하십시오.

{ "source-ref": "s3://AWSDOC-EXAMPLE-BUCKET/image_example.png", "sport":0, "sport-metadata": { "class-name": "football", "confidence": 0.00, "type":"groundtruth/image-classification", "job-name": "identify-sport", "human-annotated": "yes", "creation-date": "2018-10-18T22:18:13.527256" } }

레이블의 값은 유효한 모든 JSON일 수 있습니다. 이 경우, 레이블의 값은 분류 목록의 클래스 인덱스입니다. 경계 상자와 같은 다른 작업 유형에는 보다 복잡한 값이 있습니다.

입력 매니페스트 파일의 레이블 속성 이외 모든 키-값 페어는 출력 파일에서 바뀌지 않습니다. 애플리케이션에 데이터를 전달할 때 이러한 페어를 사용할 수 있습니다.

라벨링 작업의 출력은 다른 라벨링 작업에 대한 입력으로 사용할 수 있습니다. 라벨링 작업을 함께 묶을 때 이러한 기능을 사용할 수 있습니다. 예를 들어, 진행 중인 스포츠를 확인하는 라벨링 작업 하나를 보낼 수 있습니다. 그런 다음 동일한 데이터를 사용하여 해당 스포츠가 실내 또는 실외에서 진행 중인지 확인하는 다른 작업을 보냅니다. 첫 번째 작업의 출력 데이터를 두 번째 작업의 매니페스트로 사용하면 두 작업의 결과를 하나의 출력 파일로 통합해 애플리케이션에서 쉽게 처리하도록 할 수 있습니다.

출력 데이터 파일은 작업 진행 중에도 정기적으로 출력 위치에 기록됩니다. 이러한 중간 파일에는 매니페스트 파일의 각 행에 해당하는 행이 하나씩 포함되어 있습니다. 객체에 레이블이 지정된 경우에는 레이블이 포함됩니다. 객체에 레이블이 지정되지 않은 경우에는 매니페스트 파일과 동일하게 중간 출력 파일에 기록됩니다.

출력 디렉터리

Ground Truth는 Amazon S3 출력 경로에 여러 디렉터리를 생성합니다. 이러한 디렉터리에는 라벨링 작업의 결과와 작업의 다른 결과물이 포함되어 있습니다. 레이블 지정 작업의 최상위 디렉터리 이름은 레이블 지정 작업과 동일하며, 출력 디렉터리는 그 아래에 있습니다. 예를 들어, 레이블 지정 작업의 이름이 find-people인 경우 출력은 다음 디렉터리에 저장됩니다.

s3://AWSDOC-EXAMPLE-BUCKET/find-people/activelearning s3://AWSDOC-EXAMPLE-BUCKET/find-people/annotations s3://AWSDOC-EXAMPLE-BUCKET/find-people/inference s3://AWSDOC-EXAMPLE-BUCKET/find-people/manifests s3://AWSDOC-EXAMPLE-BUCKET/find-people/training

각 디렉터리에는 다음 출력이 포함됩니다.

활성 학습 디렉터리

activelearning 디렉터리는 자동화된 데이터 라벨링을 사용하는 경우에만 존재합니다. 이 디렉터리에는 자동화된 데이터 라벨링에 대한 입력 및 출력 검증 세트와 자동으로 레이블이 지정된 데이터에 대한 입력 및 출력 폴더가 있습니다.

주석 디렉터리

annotations 디렉터리에는 작업 인력이 작성한 주석이 모두 포함되어 있습니다. 이러한 주석은 개별 작업자의 응답으로, 데이터 객체에 대한 단일 레이블로 통합되지 않았습니다.

annotations 디렉터리에는 하위 디렉터리가 3개 있습니다.

  • 첫 번째 디렉터리인 worker-response에는 개별 작업자의 응답이 포함되어 있습니다. 여기에는 각 반복에 대한 하위 디렉터리가 포함되며, 해당 반복의 각 데이터 객체에 대한 하위 디렉터리가 포함됩니다. 각 데이터 객체에 대한 작업자 응답 데이터는 타임스탬프가 지정된 JSON 파일에 저장되며 여기에는 해당 데이터 객체에 대해 각 작업자가 제출한 답변이 포함되어 있습니다. 프라이빗 작업 인력을 사용하는 경우 해당 작업자에 대한 메타데이터가 포함되어 있습니다. 이 메타데이터에 대해 자세히 알아보려면 작업자 메타데이터 단원을 참조하십시오.

  • 두 번째 디렉터리인 consolidated-annotation에는 현재 배치의 주석을 데이터 객체에 대한 레이블로 통합하는 데 필요한 정보가 포함되어 있습니다.

  • 세 번째 디렉터리인 intermediate에는 완료된 모든 레이블과 함께 현재 배치에 대한 출력 매니페스트가 포함되어 있습니다. 각 데이터 객체에 대한 레이블이 완료되면 이 파일이 업데이트됩니다.

참고

설명서에 언급되지 않은 파일은 사용하지 않는 것이 좋습니다.

추론 디렉터리

inference 디렉터리는 자동화된 데이터 라벨링을 사용하는 경우에만 존재합니다. 이 디렉터리에는 데이터 객체 레이블 지정 중 사용된 SageMaker 배치 변환에 대한 입력 및 출력 파일이 포함되어 있습니다.

Manifest 디렉터리

manifest 디렉터리에는 라벨링 작업의 출력 매니페스트가 포함되어 있습니다. 매니페스트 디렉터리에는 하나의 하위 디렉터리(output)가 있습니다. output 디렉터리에는 라벨링 작업에 대한 출력 매니페스트 파일이 포함되어 있습니다. 이 파일의 이름은 output.manifest입니다.

교육 디렉터리

training 디렉터리는 자동화된 데이터 라벨링을 사용하는 경우에만 존재합니다. 이 디렉터리에는 자동화된 데이터 레이블 지정 모델을 교육하는 데 사용된 입력 및 출력 파일이 포함되어 있습니다.

신뢰도 점수

두 명 이상의 작업자가 단일 태스크에 주석을 다는 경우 레이블은 주석 통합으로 인해 생성됩니다. Ground Truth는 각 레이블에 대한 신뢰도 점수를 계산합니다. 신뢰도 점수는 해당 레이블에서 Ground Truth를 얼마나 신뢰할 수 있는지를 나타내며 0~1의 숫자로 표시됩니다. 신뢰도 점수를 사용하여 레이블이 지정된 데이터 객체를 서로 비교한 다음 가장 신뢰도가 낮거나 높은 레이블을 식별할 수 있습니다.

신뢰도 점수를 절대값으로 해석하거나 레이블 지정 작업 간 신뢰도 점수를 비교하면 안 됩니다. 예를 들어, 모든 신뢰도 점수가 0.98~0.998인 경우 데이터 객체는 서로 간에만 비교해야 하며 높은 신뢰도 점수를 사용하면 안 됩니다.

인간이 라벨링한 데이터 객체와 자동 라벨링된 데이터 객체의 신뢰도 점수를 비교하면 안 됩니다. 인간 작업에 대한 신뢰도 점수는 작업에 대한 주석 통합 함수를 사용하여 계산하지만 자동화된 레이블 지정 작업에 대한 신뢰도 점수는 객체 특징을 통합하는 모델을 사용하여 계산됩니다. 두 모델은 일반적으로 척도와 평균 신뢰도가 다릅니다.

경계 상자 레이블 지정 작업의 경우 Ground Truth는 상자당 신뢰도 점수를 계산합니다. 동일한 라벨링 유형(인간 또는 자동)에 대해 하나의 이미지 내에서 또는 이미지 간에 신뢰도 점수를 비교할 수 있습니다. 라벨링 작업 간에는 신뢰도 점수를 비교할 수 없습니다.

단일 작업자가 태스크에 주석을 달면(NumberOfHumanWorkersPerDataObject1로 설정되거나 콘솔에서 데이터 세트 객체당 작업자 수에 1을 입력한 경우) 신뢰도 점수가 0.00으로 설정됩니다.

작업자 메타데이터

Ground Truth는 태스크 출력 데이터에서 개별 작업자를 추적하는 데 사용할 수 있는 정보를 제공합니다. 다음 데이터는 주석 디렉터리에 위치한 worker-response의 디렉터리에 있습니다.

  • acceptanceTime은 작업자가 태스크를 수락한 시간입니다. 이 날짜 및 타임스탬프의 형식은 YYYY-MM-DDTHH:MM:SS.mmmZ으로 연도(YYYY), 월(MM), 일(DD), 시(HH), 분(MM), 초(SS), 밀리초(mmm)입니다. 날짜와 시간은 T로 구분됩니다.

  • submissionTime은 작업자가 제출 버튼을 사용하여 주석을 제출한 시간입니다. 이 날짜 및 타임스탬프의 형식은 YYYY-MM-DDTHH:MM:SS.mmmZ으로 연도(YYYY), 월(MM), 일(DD), 시(HH), 분(MM), 초(SS), 밀리초(mmm)입니다. 날짜와 시간은 T로 구분됩니다.

  • timeSpentInSeconds은 작업자가 해당 태스크를 적극적으로 수행한 총 시간(초)을 보고합니다. 이 지표에는 작업자가 일시 중지하거나 휴식을 취한 시간은 포함되지 않습니다.

  • workerId는 각 작업자에게 고유합니다.

  • workerMetadata에서 프라이빗 작업 인력을 사용하는 경우 다음과 같은 내용이 표시됩니다.

    • identityProviderType은 프라이빗 작업 인력을 관리하는 데 사용하는 서비스입니다.

    • issuer은 이 인적 검토 태스크에 배정된 작업 팀과 관련된 Cognito 사용자 풀 또는 OIDC 자격 증명 공급자(IdP) 발급자입니다.

    • 고유 sub 식별자는 해당 작업자를 참조합니다. Amazon Cognito를 사용하여 인력을 생성하는 경우 Amazon Cognito를 사용하여 이 ID로 이 작업자(예: 해당 이름 또는 사용자 이름)에 대한 세부 정보를 검색할 수 있습니다. 방법을 알아보려면 Amazon Cognito 개발자 안내서사용자 계정 관리 및 검색을 참조하십시오.

다음은 Amazon Cognito를 사용하여 프라이빗 작업 인력을 생성하는 경우 확인할 수 있는 출력의 예입니다. 이는 identityProviderType에서 식별됩니다.

"submissionTime": "2020-12-28T18:59:58.321Z", "acceptanceTime": "2020-12-28T18:59:15.191Z", "timeSpentInSeconds": 40.543, "workerId": "a12b3cdefg4h5i67", "workerMetadata": { "identityData": { "identityProviderType": "Cognito", "issuer": "https://cognito-idp.aws-region.amazonaws.com/aws-region_123456789", "sub": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" } }

다음은 OIDC IdP를 사용하여 프라이빗 작업 인력을 생성하는 경우 확인할 수 있는 workerMetadata의 예입니다.

"workerMetadata": { "identityData": { "identityProviderType": "Oidc", "issuer": "https://example-oidc-ipd.com/adfs", "sub": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" } }

프라이빗 작업 인력 사용에 대한 자세한 내용은 프라이빗 작업 인력 사용 단원을 참조하십시오.

출력 메타데이터

각 작업의 출력에는 데이터 객체에 할당된 레이블에 대한 메타데이터가 포함되어 있습니다. 이러한 요소는 사소가 차이가 있는 모든 작업에 대해 동일합니다. 다음 예제에서는 메타데이터 요소를 보여 줍니다.

"confidence": 0.00, "type": "groundtruth/image-classification", "job-name": "identify-animal-species", "human-annotated": "yes", "creation-date": "2020-10-18T22:18:13.527256"

각 요소에는 다음과 같은 의미가 있습니다.

  • confidence – 레이블이 올바른지에 대해 Ground Truth가 갖는 신뢰도. 자세한 내용은 신뢰도 점수 섹션을 참조하세요.

  • type – 분류 작업 유형. 작업 유형에 관한 내용은 기본 제공 작업 유형 단원을 참조하십시오.

  • job-name – 생성 시 작업에 할당된 이름.

  • human-annotated – 인간이 직접 또는 자동화된 데이터 레이블 지정으로 데이터 객체의 레이블 지정 여부를 나타냅니다. 자세한 내용은 데이터 레이블 지정 자동화 섹션을 참조하세요.

  • creation-date – 레이블이 생성된 날짜와 시간.

분류 작업 출력

다음은 이미지 분류 작업 및 텍스트 분류 작업의 샘플 출력(출력 매니페스트 파일)입니다. 여기에는 Ground Truth에서 데이터 객체에 할당한 레이블, 해당 레이블 값, 레이블을 설명하는 메타데이터가 포함되어 있습니다.

분류 작업에 대한 메타데이터에는 표준 메타데이터 요소 외에 레이블의 클래스에 대한 텍스트 값이 포함되어 있습니다. 자세한 내용은 이미지 분류 - MXNet 섹션을 참조하세요.

아래 예에서 빨간색 기울임꼴로 표시된 텍스트는 레이블 지정 작업 사양 및 출력 데이터에 따라 다릅니다.

{ "source-ref":"s3://AWSDOC-EXAMPLE-BUCKET/example_image.jpg", "species":"0", "species-metadata": { "class-name": "dog", "confidence": 0.00, "type": "groundtruth/image-classification", "job-name": "identify-animal-species", "human-annotated": "yes", "creation-date": "2018-10-18T22:18:13.527256" } }
{ "source":"The food was delicious", "mood":"1", "mood-metadata": { "class-name": "positive", "confidence": 0.8, "type": "groundtruth/text-classification", "job-name": "label-sentiment", "human-annotated": "yes", "creation-date": "2020-10-18T22:18:13.527256" } }

다중 레이블 분류 작업 출력

다음은 다중 레이블 이미지 분류 작업 및 다중 레이블 텍스트 분류 작업의 출력 매니페스트 파일의 예제입니다. 여기에는 Ground Truth에서 데이터 객체(예: 이미지 또는 텍스트 조각)에 할당한 레이블과 레이블 지정 작업을 완료할 때 작업자에게 표시되는 레이블 설명 메타데이터가 포함됩니다.

레이블 속성 이름 파라미터(예: image-label-attribute-name)에는 이 작업을 완료한 작업자 중 하나 이상이 선택한 모든 레이블의 배열이 포함됩니다. 이 배열에는 class-map에 있는 레이블에 해당하는 정수 키(예: [1,0,8])가 포함되어 있습니다. 다중 레이블 이미지 분류 예제에서는 이미지 exampleimage.jpg에 대한 레이블 지정 작업을 완료한 작업자 중 한 명 이상이 bicycle, personclothing을 선택했습니다.

confidence-map에는 작업자가 선택한 각 레이블에 Ground Truth가 할당한 신뢰도 점수가 표시됩니다. Ground Truth 신뢰도 점수에 대한 자세한 내용은 신뢰도 점수 단원을 참조하십시오.

아래 예에서 빨간색 기울임꼴로 표시된 텍스트는 레이블 지정 작업 사양 및 출력 데이터에 따라 다릅니다.

다음은 다중 레이블 이미지 분류 출력 매니페스트 파일의 예제입니다.

{ "source-ref": "s3://AWSDOC-EXAMPLE-BUCKET/example_image.jpg", "image-label-attribute-name":[1,0,8], "image-label-attribute-name-metadata": { "job-name":"labeling-job/image-label-attribute-name", "class-map": { "1":"bicycle","0":"person","8":"clothing" }, "human-annotated":"yes", "creation-date":"2020-02-27T21:36:25.000201", "confidence-map": { "1":0.95,"0":0.77,"8":0.2 }, "type":"groundtruth/image-classification-multilabel" } }

다음은 다중 레이블 텍스트 분류 출력 매니페스트 파일의 예제입니다. 이 예제에서는 AWSDOC-EXAMPLE-BUCKET에서 발견된 객체 exampletext.txt에 대한 레이블 지정 작업을 완료한 작업자 중 한 명 이상이 approving, sadcritical을 선택했습니다.

{ "source-ref": "AWSDOC-EXAMPLE-BUCKET/text_file.txt", "text-label-attribute-name":[1,0,4], "text-label-attribute-name-metadata": { "job-name":"labeling-job/text-label-attribute-name", "class-map": { "1":"approving","0":"sad","4":"critical" }, "human-annotated":"yes", "creation-date":"2020-02-20T21:36:25.000201", "confidence-map": { "1":0.95,"0":0.77,"4":0.2 }, "type":"groundtruth/text-classification-multilabel" } }

경계 상자 작업 출력

다음은 경계 상자 작업의 샘플 출력(출력 매니페스트 파일)입니다. 이 작업에서는 세 개의 경계 상자가 반환됩니다. 레이블 값에는 이미지 크기에 대한 정보와 경계 상자의 위치가 포함되어 있습니다.

class_id 요소는 작업에 사용 가능한 클래스 목록에서 작업의 클래스 인덱스입니다. class-map 메타데이터 요소에는 클래스 텍스트가 포함되어 있습니다.

메타데이터에는 각 경계 상자에 대한 별도의 신뢰도 점수가 있습니다. 또한 메타데이터에는 class_id를 클래스의 텍스트 값으로 매핑하는 class-map 요소가 포함되어 있습니다. 자세한 내용은 객체 감지 - MXNet 섹션을 참조하세요.

아래 예에서 빨간색 기울임꼴로 표시된 텍스트는 레이블 지정 작업 사양 및 출력 데이터에 따라 다릅니다.

{ "source-ref": "s3://AWSDOC-EXAMPLE-BUCKET/example_image.png", "bounding-box-attribute-name": { "image_size": [{ "width": 500, "height": 400, "depth":3}], "annotations": [ {"class_id": 0, "left": 111, "top": 134, "width": 61, "height": 128}, {"class_id": 5, "left": 161, "top": 250, "width": 30, "height": 30}, {"class_id": 5, "left": 20, "top": 20, "width": 30, "height": 30} ] }, "bounding-box-attribute-name-metadata": { "objects": [ {"confidence": 0.8}, {"confidence": 0.9}, {"confidence": 0.9} ], "class-map": { "0": "dog", "5": "bone" }, "type": "groundtruth/object-detection", "human-annotated": "yes", "creation-date": "2018-10-18T22:18:13.527256", "job-name": "identify-dogs-and-toys" } }

경계 상자 조정 작업의 출력은 다음 JSON과 같습니다. 원본 JSON은 온전하게 유지되고 원래 속성 이름 앞에 “adjust-”가 추가된 두 개의 새 작업이 나열됩니다.

{ "source-ref": "S3 bucket location", "bounding-box-attribute-name": { "image_size": [{ "width": 500, "height": 400, "depth":3}], "annotations": [ {"class_id": 0, "left": 111, "top": 134, "width": 61, "height": 128}, {"class_id": 5, "left": 161, "top": 250, "width": 30, "height": 30}, {"class_id": 5, "left": 20, "top": 20, "width": 30, "height": 30} ] }, "bounding-box-attribute-name-metadata": { "objects": [ {"confidence": 0.8}, {"confidence": 0.9}, {"confidence": 0.9} ], "class-map": { "0": "dog", "5": "bone" }, "type": "groundtruth/object-detection", "human-annotated": "yes", "creation-date": "2018-10-18T22:18:13.527256", "job-name": "identify-dogs-and-toys" }, "adjusted-bounding-box": { "image_size": [{ "width": 500, "height": 400, "depth":3}], "annotations": [ {"class_id": 0, "left": 110, "top": 135, "width": 61, "height": 128}, {"class_id": 5, "left": 161, "top": 250, "width": 30, "height": 30}, {"class_id": 5, "left": 10, "top": 10, "width": 30, "height": 30} ] }, "adjusted-bounding-box-metadata": { "objects": [ {"confidence": 0.8}, {"confidence": 0.9}, {"confidence": 0.9} ], "class-map": { "0": "dog", "5": "bone" }, "type": "groundtruth/object-detection", "human-annotated": "yes", "creation-date": "2018-11-20T22:18:13.527256", "job-name": "adjust-bounding-boxes-on-dogs-and-toys", "adjustment-status": "adjusted" } }

이 출력에서 작업 type은 변경되지 않지만 adjustment-status 필드가 추가됩니다. 이 필드 값은 adjusted 또는 unadjusted입니다. 여러 작업자가 객체를 검토하고 한 명 이상이 레이블을 조정한 경우, 상태는 adjusted가 됩니다.

명명된 엔터티 인식

다음은 NER(명명된 주체 인식) 레이블 지정 작업의 출력 매니페스트 파일 예시입니다. 이 태스크의 경우 entities 7개가 반환됩니다.

출력 매니페스트에서 JSON 객체 annotations에는 제공한 labels(레이블 카테고리) 목록이 포함됩니다.

작업자 응답은 entities 목록에 있습니다. 각 엔터티에는 labels 목록의 값과 일치하는 label 값, 레이블이 지정된 스팬의 시작 유니코드 오프셋에 대한 정수 startOffset 값 및 종료 유니코드 오프셋에 대한 정수 endOffset 값이 포함됩니다.

메타데이터에는 각 엔터티에 대한 별도의 신뢰도 점수가 있습니다. 한 명의 작업자가 각 데이터 객체에 레이블을 지정한 경우 각 엔터티의 신뢰도 값은 0이 됩니다.

아래 예에서 기울임꼴로 표시된 빨간색 텍스트는 레이블 지정 작업 입력 및 작업자 응답에 따라 달라집니다.

{ "source": "Amazon SageMaker is a cloud machine-learning platform that was launched in November 2017. SageMaker enables developers to create, train, and deploy machine-learning (ML) models in the cloud. SageMaker also enables developers to deploy ML models on embedded systems and edge-devices", "ner-labeling-job-attribute-name": { "annotations": { "labels": [ { "label": "Date", "shortDisplayName": "dt" }, { "label": "Verb", "shortDisplayName": "vb" }, { "label": "Thing", "shortDisplayName": "tng" }, { "label": "People", "shortDisplayName": "ppl" } ], "entities": [ { "label": "Thing", "startOffset": 22, "endOffset": 53 }, { "label": "Thing", "startOffset": 269, "endOffset": 281 }, { "label": "Verb", "startOffset": 63, "endOffset": 71 }, { "label": "Verb", "startOffset": 228, "endOffset": 234 }, { "label": "Date", "startOffset": 75, "endOffset": 88 }, { "label": "People", "startOffset": 108, "endOffset": 118 }, { "label": "People", "startOffset": 214, "endOffset": 224 } ] } }, "ner-labeling-job-attribute-name-metadata": { "job-name": "labeling-job/example-ner-labeling-job", "type": "groundtruth/text-span", "creation-date": "2020-10-29T00:40:39.398470", "human-annotated": "yes", "entities": [ { "confidence": 0 }, { "confidence": 0 }, { "confidence": 0 }, { "confidence": 0 }, { "confidence": 0 }, { "confidence": 0 }, { "confidence": 0 } ] } }

레이블 확인 작업 출력

경계 상자 확인 작업의 출력(출력 매니페스트 파일)은 경계 상자 주석 작업의 출력과 다릅니다. 이는 작업자에게 서로 다른 작업 유형이 있기 때문입니다. 작업자는 객체에 레이블을 지정하지 않지만, 이전 레이블 지정의 정확성을 평가하고 판단한 후 판단 내용과 일부 설명을 제공합니다.

인간 작업자가 이전 경계 상자 레이블을 확인 또는 조정하는 경우 확인 작업의 출력은 다음 JSON과 같습니다. 아래 예에서 빨간색 기울임꼴로 표시된 텍스트는 레이블 지정 작업 사양 및 출력 데이터에 따라 다릅니다.

{ "source-ref":"s3://AWSDOC-EXAMPLE-BUCKET/image_example.png", "bounding-box-attribute-name": { "image_size": [{ "width": 500, "height": 400, "depth":3}], "annotations": [ {"class_id": 0, "left": 111, "top": 134, "width": 61, "height": 128}, {"class_id": 5, "left": 161, "top": 250, "width": 30, "height": 30}, {"class_id": 5, "left": 20, "top": 20, "width": 30, "height": 30} ] }, "bounding-box-attribute-name-metadata": { "objects": [ {"confidence": 0.8}, {"confidence": 0.9}, {"confidence": 0.9} ], "class-map": { "0": "dog", "5": "bone" }, "type": "groundtruth/object-detection", "human-annotated": "yes", "creation-date": "2018-10-18T22:18:13.527256", "job-name": "identify-dogs-and-toys" }, "verify-bounding-box-attribute-name":"1", "verify-bounding-box-attribute-name-metadata": { "class-name": "bad", "confidence": 0.93, "type": "groundtruth/label-verification", "job-name": "verify-bounding-boxes", "human-annotated": "yes", "creation-date": "2018-11-20T22:18:13.527256", "worker-feedback": [ {"comment": "The bounding box on the bird is too wide on the right side."}, {"comment": "The bird on the upper right is not labeled."} ] } }

원래 경계 상자 출력의 typegroundtruth/object-detection였지만, 새 typegroundtruth/label-verification입니다. 또한 worker-feedback 배열은 작업자 설명을 제공합니다. 작업자 설명이 제공되지 않는 경우, 빈 필드는 통합 중에 제외됩니다.

의미 체계 분할 작업 출력

다음은 의미 체계 분할 레이블 지정 작업의 출력 매니페스트 파일입니다. 이 작업에 대한 레이블의 값은 Amazon S3 버킷에서 PNG 파일에 대한 참조입니다.

레이블에 대한 메타데이터에는 표준 요소 이외에 이미지 레이블 지정에 사용한 색상을 정의하는 컬러 맵, 색상과 연결된 클래스 이름 및 각 색상에 대한 신뢰도 점수가 포함되어 있습니다. 자세한 내용은 의미 체계 분할 알고리즘 섹션을 참조하세요.

아래 예에서 빨간색 기울임꼴로 표시된 텍스트는 레이블 지정 작업 사양 및 출력 데이터에 따라 다릅니다.

{ "source-ref": "s3://AWSDOC-EXAMPLE-BUCKET/example_city_image.png", "city-streets-ref": "S3 bucket location", "city-streets-ref-metadata": { "internal-color-map": { "0": { "class-name": "BACKGROUND", "confidence": 0.9, "hex-color": "#ffffff" }, "1": { "class-name": "buildings", "confidence": 0.9, "hex-color": "#2acf59" }, "2": { "class-name": "road", "confidence": 0.9, "hex-color": "#f28333" } }, "type": "groundtruth/semantic-segmentation", "human-annotated": "yes", "creation-date": "2018-10-18T22:18:13.527256", "job-name": "label-city-streets", }, "verify-city-streets-ref":"1", "verify-city-streets-ref-metadata": { "class-name": "bad", "confidence": 0.93, "type": "groundtruth/label-verification", "job-name": "verify-city-streets", "human-annotated": "yes", "creation-date": "2018-11-20T22:18:13.527256", "worker-feedback": [ {"comment": "The mask on the leftmost building is assigned the wrong side of the road."}, {"comment": "The curb of the road is not labeled but the instructions say otherwise."} ] } }

신뢰도는 이미지별 기반으로 측정됩니다. 신뢰도 점수는 이미지 내 모든 클래스에서 동일합니다.

의미 체계 분할 조정 작업의 출력은 다음 JSON과 유사합니다.

{ "source-ref": "s3://AWSDOC-EXAMPLE-BUCKET/example_city_image.png", "city-streets-ref": "S3 bucket location", "city-streets-ref-metadata": { "internal-color-map": { "0": { "class-name": "BACKGROUND", "confidence": 0.9, "hex-color": "#ffffff" }, "1": { "class-name": "buildings", "confidence": 0.9, "hex-color": "#2acf59" }, "2": { "class-name": "road", "confidence": 0.9, "hex-color": "#f28333" } }, "type": "groundtruth/semantic-segmentation", "human-annotated": "yes", "creation-date": "2018-10-18T22:18:13.527256", "job-name": "label-city-streets", }, "adjusted-city-streets-ref": "s3://AWSDOC-EXAMPLE-BUCKET/example_city_image.png", "adjusted-city-streets-ref-metadata": { "internal-color-map": { "0": { "class-name": "BACKGROUND", "confidence": 0.9, "hex-color": "#ffffff" }, "1": { "class-name": "buildings", "confidence": 0.9, "hex-color": "#2acf59" }, "2": { "class-name": "road", "confidence": 0.9, "hex-color": "#f28333" } }, "type": "groundtruth/semantic-segmentation", "human-annotated": "yes", "creation-date": "2018-11-20T22:18:13.527256", "job-name": "adjust-label-city-streets", } }

비디오 프레임 객체 감지 출력

다음은 동영상 프레임 객체 감지 레이블 지정 작업에서 나온 출력 매니페스트 파일입니다. 아래 예에서 빨간색 기울임꼴로 표시된 텍스트는 레이블 지정 작업 사양 및 출력 데이터에 따라 다릅니다.

표준 요소 외에도 메타데이터에는 시퀀스에 레이블이 하나 이상 포함된 각 클래스를 나열하는 클래스 맵이 포함되어 있습니다. 메타데이터에는 레이블 지정 작업에 할당한 이름 job-name도 포함됩니다. 수정 작업의 경우 하나 이상의 경계 상자가 수정된 경우, adjusted로 설정된 감사 워크플로의 메타데이터에 adjustment-status 파라미터가 있습니다.

{ "source-ref": "s3://DOC-EXAMPLE-BUCKET/example-path/input-manifest.json", "CarObjectDetection-ref": "s3://AWSDOC-EXAMPLE-BUCKET/output/labeling-job-name/annotations/consolidated-annotation/output/0/SeqLabel.json", "CarObjectDetection-ref-metadata": { "class-map": { "0": "car", "1": "bus" }, "job-name": "labeling-job/labeling-job-name", "human-annotated": "yes", "creation-date": "2021-09-29T05:50:35.566000", "type": "groundtruth/video-object-detection" } }

Ground Truth는 레이블이 지정된 동영상 프레임의 각 시퀀스에 대해 하나의 출력 시퀀스 파일을 만듭니다. 각 출력 시퀀스 파일에는 다음이 포함되어 있습니다.

  • JSON 객체 detection-annotations 목록에 있는 시퀀스 내 모든 프레임의 모든 주석.

  • 작업자가 주석을 추가한 각 프레임의 경우 프레임 파일 이름(frame), 번호(frame-no), 주석이 포함된 JSON 객체 목록(annotations) 및 해당하는 경우 frame-attributes. 이 목록의 이름은 사용하는 작업 유형인 polylines, polygons, keypoints와 경계 상자의 경우 annotations에 따라 정의됩니다.

    각 JSON 객체에는 단일 주석 및 관련 레이블에 대한 정보가 포함되어 있습니다. 다음 표에는 각 동영상 프레임 태스크 유형에 표시되는 매개변수가 요약되어 있습니다.

    태스크 유형 파라미터

    Bounding Box

    박스 크기: heightwidth

    박스 상단, 왼쪽 모서리 픽셀 위치: topleft

    키포인트

    키포인트 꼭짓점: { "x": int, "y": int }

    다각형

    다각형 꼭짓점 목록: vertices

    다각형 꼭짓점: { "x": int, "y": int }

    다각형은 닫힌 모양이므로 첫 번째 지점은 마지막 지점이기도 합니다.

    Polyline

    폴리라인 정점 목록: vertices

    폴리라인 정점: { "x": int, "y": int }

    작업 유형별 값 외에도 각 JSON 객체에는 다음이 표시됩니다.

    • 해당 레이블에 지정된 모든 label-category-attributes의 값.

    • 해당 박스의 class-id. 출력 매니페스트 파일의 class-map을 사용하여 이 ID가 매핑되는 레이블 카테고리를 확인할 수 있습니다.

다음은 경계 상자 동영상 프레임 객체 감지 레이블 지정 작업의 SeqLabel.json 파일 예제입니다. 이 파일은 s3://your-output-bucket/output-prefix/annotations/consolidated-annotation/output/annotation-number/ 아래에 있습니다.

{ "detection-annotations": [ { "annotations": [ { "height": 41, "width": 53, "top": 152, "left": 339, "class-id": "1", "label-category-attributes": { "occluded": "no", "size": "medium" } }, { "height": 24, "width": 37, "top": 148, "left": 183, "class-id": "0", "label-category-attributes": { "occluded": "no", } } ], "frame-no": 0, "frame": "frame_0000.jpeg", "frame-attributes": {name: value, name: value} }, { "annotations": [ { "height": 41, "width": 53, "top": 152, "left": 341, "class-id": "0", "label-category-attributes": {} }, { "height": 24, "width": 37, "top": 141, "left": 177, "class-id": "0", "label-category-attributes": { "occluded": "no", } } ], "frame-no": 1, "frame": "frame_0001.jpeg", "frame-attributes": {name: value, name: value} } ] }

동영상 프레임 객체 추적 출력

다음은 동영상 프레임 객체 추적 레이블 지정 작업에서 나온 출력 매니페스트 파일입니다. 아래 예에서 빨간색 기울임꼴로 표시된 텍스트는 레이블 지정 작업 사양 및 출력 데이터에 따라 다릅니다.

표준 요소 외에도 메타데이터에는 프레임 시퀀스에 레이블이 하나 이상 포함된 각 클래스를 나열하는 클래스 맵이 포함되어 있습니다. 메타데이터에는 레이블 지정 작업에 할당한 이름 job-name도 포함됩니다. 수정 작업의 경우 하나 이상의 경계 상자가 수정된 경우, adjusted로 설정된 감사 워크플로의 메타데이터에 adjustment-status 파라미터가 있습니다.

{ "source-ref": "s3://DOC-EXAMPLE-BUCKET/example-path/input-manifest.json", "CarObjectTracking-ref": "s3://AWSDOC-EXAMPLE-BUCKET/output/labeling-job-name/annotations/consolidated-annotation/output/0/SeqLabel.json", "CarObjectTracking-ref-metadata": { "class-map": { "0": "car", "1": "bus" }, "job-name": "labeling-job/labeling-job-name", "human-annotated": "yes", "creation-date": "2021-09-29T05:50:35.566000", "type": "groundtruth/video-object-tracking" } }

Ground Truth는 레이블이 지정된 동영상 프레임의 각 시퀀스에 대해 하나의 출력 시퀀스 파일을 만듭니다. 각 출력 시퀀스 파일에는 다음이 포함되어 있습니다.

  • JSON 객체 tracking-annotations 목록에 있는 시퀀스 내 모든 프레임의 모든 주석.

  • 작업자가 주석을 추가한 각 프레임의 경우 프레임(frame), 번호(frame-no), 주석이 포함된 JSON 객체 목록(annotations) 및 해당하는 경우 프레임 속성(frame-attributes). 이 목록의 이름은 사용하는 작업 유형인 polylines, polygons, keypoints와 경계 상자의 경우 annotations에 따라 정의됩니다.

    각 JSON 객체에는 단일 주석 및 관련 레이블에 대한 정보가 포함되어 있습니다. 다음 표에는 각 동영상 프레임 태스크 유형에 표시되는 매개변수가 요약되어 있습니다.

    태스크 유형 파라미터

    Bounding Box

    박스 크기: heightwidth

    박스 상단, 왼쪽 모서리 픽셀 위치: topleft

    키포인트

    키포인트 꼭짓점: { "x": int, "y": int }

    다각형

    다각형 꼭짓점 목록: vertices

    다각형 꼭짓점: { "x": int, "y": int }

    다각형은 닫힌 모양이므로 첫 번째 지점은 마지막 지점이기도 합니다.

    Polyline

    폴리라인 정점 목록: vertices

    폴리라인 정점: { "x": int, "y": int }

    작업 유형별 값 외에도 각 JSON 객체에는 다음이 표시됩니다.

    • 해당 레이블에 지정된 모든 label-category-attributes의 값.

    • 해당 박스의 class-id. 출력 매니페스트 파일의 class-map을 사용하여 이 ID가 매핑되는 레이블 카테고리를 확인할 수 있습니다.

    • 레이블 인스턴스를 식별하는 object-id. 작업자가 여러 프레임에서 객체의 동일한 인스턴스를 식별한 경우 이 ID는 프레임 간에 동일합니다. 예를 들어, 자동차가 여러 프레임으로 나타나는 경우 해당 차량을 식별하는 데 사용하는 모든 경계 상자의 object-id는 동일합니다.

    • 해당 주석의 인스턴스 ID인 object-name.

다음은 경계 상자 동영상 프레임 객체 추적 레이블 지정 작업의 SeqLabel.json 파일 예제입니다. 이 파일은 s3://your-output-bucket/output-prefix/annotations/consolidated-annotation/output/annotation-number/ 아래에 있습니다.

{ "tracking-annotations": [ { "annotations": [ { "height": 36, "width": 46, "top": 178, "left": 315, "class-id": "0", "label-category-attributes": { "occluded": "no" }, "object-id": "480dc450-c0ca-11ea-961f-a9b1c5c97972", "object-name": "car:1" } ], "frame-no": 0, "frame": "frame_0001.jpeg", "frame-attributes": {} }, { "annotations": [ { "height": 30, "width": 47, "top": 163, "left": 344, "class-id": "1", "label-category-attributes": { "occluded": "no", "size": "medium" }, "object-id": "98f2b0b0-c0ca-11ea-961f-a9b1c5c97972", "object-name": "bus:1" }, { "height": 28, "width": 33, "top": 150, "left": 192, "class-id": "0", "label-category-attributes": { "occluded": "partially" }, "object-id": "480dc450-c0ca-11ea-961f-a9b1c5c97972", "object-name": "car:1" } ], "frame-no": 1, "frame": "frame_0002.jpeg", "frame-attributes": {name: value, name: value} } ] }

3D 포인트 클라우드 의미 체계 분할 출력

다음은 3D 포인트 클라우드 의미 체계 분할 레이블 지정 작업의 출력 매니페스트 파일입니다.

레이블에 대한 메타데이터에는 표준 요소 이외에 이미지 레이블 지정에 사용한 색상을 정의하는 컬러 맵, 색상과 연결된 클래스 이름 및 각 색상에 대한 신뢰도 점수가 포함되어 있습니다. 또한 색상 마스크가 수정된 경우 adjusted로 설정된 감사 워크플로의 메타데이터에는 adjustment-status 파라미터가 있습니다. 레이블 카테고리 구성 파일에 하나 이상의 frameAttributes을 추가한 경우 프레임 속성에 대한 작업자 응답은 JSON 객체 dataset-object-attributes에 있습니다.

your-label-attribute-ref 파라미터에는 확장자가 .zlib인 압축 파일의 위치가 포함되어 있습니다. 이 파일의 압축을 풀면 파일에 배열이 포함되어 있습니다. 배열의 각 인덱스는 입력 포인트 클라우드 내 주석이 달린 점의 인덱스에 해당합니다. 지정된 인덱스의 배열 값은 metadatacolor-map 파라미터에 있는 의미 체계 컬러 맵을 기반으로 포인트 클라우드 내 동일한 인덱스에 있는 점의 클래스를 제공합니다.

다음과 유사한 Python 코드를 사용하여 .zlib 파일의 압축을 풀 수 있습니다.

import zlib from array import array # read the label file compressed_binary_file = open(zlib_file_path/file.zlib, 'rb').read() # uncompress the label file binary_content = zlib.decompress(compressed_binary_file) # load labels to an array my_int_array_data = array('B', binary_content); print(my_int_array_data)

위의 코드 블록은 다음과 비슷한 출력을 생성합니다. 인쇄된 배열의 각 요소에는 포인트 클라우드 내 해당 인덱스에 있는 점의 클래스가 포함됩니다. 예를 들어, my_int_array_data[0] = 1는 입력 포인트 클라우드의 point[0]에 클래스 1이 있음을 의미합니다. 다음 출력 매니페스트 파일 예제에서 클래스 0"Background", 1Car, 2Pedestrian에 해당합니다.

>> array('B', [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2])

다음은 의미 체계 분할 3D 포인트 클라우드 레이블 지정 작업의 출력 매니페스트 파일 예제입니다. 아래 예에서 빨간색 기울임꼴로 표시된 텍스트는 레이블 지정 작업 사양 및 출력 데이터에 따라 다릅니다.

{ "source-ref": "s3://AWSDOC-EXAMPLE-BUCKET/examplefolder/frame1.bin", "source-ref-metadata":{ "format": "binary/xyzi", "unix-timestamp": 1566861644.759115, "ego-vehicle-pose":{...}, "prefix": "s3://AWSDOC-EXAMPLE-BUCKET/lidar_singleframe_dataset/prefix", "images": [{...}] }, "lidar-ss-label-attribute-ref": "s3://your-output-bucket/labeling-job-name/annotations/consolidated-annotation/output/dataset-object-id/filename.zlib", "lidar-ss-label-attribute-ref-metadata": { 'color-map': { "0": { "class-name": "Background", "hex-color": "#ffffff", "confidence": 0.00 }, "1": { "class-name": "Car", "hex-color": "#2ca02c", "confidence": 0.00 }, "2": { "class-name": "Pedestrian", "hex-color": "#1f77b4", "confidence": 0.00 }, "3": { "class-name": "Tree", "hex-color": "#ff7f0e", "confidence": 0.00 } }, 'type': 'groundtruth/point_cloud_single_frame_semantic_segmentation', 'human-annotated': 'yes', 'creation-date': '2019-11-12T01:18:14.271944', 'job-name': 'labeling-job-name', //only present for adjustment audit workflow "adjustment-status": "adjusted", // "adjusted" means the label was adjusted "dataset-object-attributes": {name: value, name: value} } }

3D 포인트 클라우드 객체 감지 출력

다음은 3D 포인트 클라우드 객체 감지 작업의 출력 샘플입니다. 이 태스크 유형의 경우 3D 입방체에 대한 데이터가 annotations라는 목록의 3d-bounding-box 파라미터에서 반환됩니다. 이 목록에서 각 3D 입방체는 다음 정보를 사용해 설명됩니다.

  • 입력 매니페스트에서 지정한 각 클래스 또는 레이블 범주는 class-id에 연결됩니다. class-map를 사용하여 각 클래스 ID와 연결된 클래스를 식별합니다.

  • 이러한 클래스는 각 3D 입방체에 <class>:<integer> 형식의 object-name을 제공하는 데 사용됩니다. 여기에서 integer은 프레임에서 해당 입방체를 식별하는 고유 번호입니다.

  • center-x, center-y, 및 center-z는 입방체의 중심 좌표로, 레이블 지정 작업에 사용되는 3D 포인트 클라우드 입력 데이터와 동일한 좌표계로 표시되어 있습니다.

  • length, widthheight는 입방체의 치수를 설명합니다.

  • yaw는 입방체의 방향(진행 방향)을 라디안 단위로 설명하는 데 사용됩니다.

    참고

    yaw는 이제 오른손 데카르트 체계로 표시됩니다. 이 기능은 2022년 9월 2일 19:02:17 UTC에 추가되었으므로 다음을 사용하여 그 이전의 출력 데이터에서 yaw 측정값을 변환할 수 있습니다(모든 단위는 라디안).

    old_yaw_in_output = pi - yaw
  • 이 정의에서 +x는 오른쪽, +y는 앞쪽, +z는 기준 평면에서 위쪽 방향입니다. 회전 순서는 x - y - z입니다. roll, pitchyaw은 오른손 데카르트 체계로 표시됩니다. 3D 공간에서 roll은 x축, pitch는 y축, yaw는 z축을 따라갑니다. 세 개 모두 시계 반대 방향입니다.

  • 해당 클래스에 대한 입력 매니페스트 파일에 레이블 속성을 포함시킨 경우에는 작업자가 레이블 속성을 선택한 모든 입방체에 label-category-attributes 파라미터가 포함되어 있습니다.

하나 이상의 입방체가 수정된 경우, adjusted로 설정된 감사 워크플로의 메타데이터에 adjustment-status 파라미터가 있습니다. 레이블 카테고리 구성 파일에 하나 이상의 frameAttributes을 추가한 경우 프레임 속성에 대한 작업자 응답은 JSON 객체 dataset-object-attributes에 있습니다.

아래 예에서 빨간색 기울임꼴로 표시된 텍스트는 레이블 지정 작업 사양 및 출력 데이터에 따라 다릅니다. 줄임표(...)는 해당 목록의 연속성을 나타내며, 여기에서는 진행 중인 객체와 동일한 형식을 가진 추가 객체가 나타날 수 있습니다.

{ "source-ref": "s3://AWSDOC-EXAMPLE-BUCKET/examplefolder/frame1.txt", "source-ref-metadata":{ "format": "text/xyzi", "unix-timestamp": 1566861644.759115, "prefix": "s3://AWSDOC-EXAMPLE-BUCKET/lidar_singleframe_dataset/prefix", "ego-vehicle-pose": { "heading": { "qx": -0.02111296123795955, "qy": -0.006495469416730261, "qz": -0.008024565904865688, "qw": 0.9997181192298087 }, "position": { "x": -2.7161461413869947, "y": 116.25822288149078, "z": 1.8348751887989483 } }, "images": [ { "fx": 847.7962624528487, "fy": 850.0340893791985, "cx": 576.2129134707038, "cy": 317.2423573573745, "k1": 0, "k2": 0, "k3": 0, "k4": 0, "p1": 0, "p2": 0, "skew": 0, "unix-timestamp": 1566861644.759115, "image-path": "images/frame_0_camera_0.jpg", "position": { "x": -2.2722515189268138, "y": 116.86003310568965, "z": 1.454614668542299 }, "heading": { "qx": 0.7594754093069037, "qy": 0.02181790885672969, "qz": -0.02461725233103356, "qw": -0.6496916273040025 }, "camera_model": "pinhole" } ] }, "3d-bounding-box": { "annotations": [ { "label-category-attributes": { "Occlusion": "Partial", "Type": "Sedan" }, "object-name": "Car:1", "class-id": 0, "center-x": -2.616382013657516, "center-y": 125.04149850484193, "center-z": 0.311272296465834, "length": 2.993000265181146, "width": 1.8355260519692056, "height": 1.3233490884304047, "roll": 0, "pitch": 0, "yaw": 1.6479308313703527 }, { "label-category-attributes": { "Occlusion": "Partial", "Type": "Sedan" }, "object-name": "Car:2", "class-id": 0, "center-x": -5.188984560617168, "center-y": 99.7954483288783, "center-z": 0.2226435567445657, "length": 4, "width": 2, "height": 2, "roll": 0, "pitch": 0, "yaw": 1.6243170732068055 } ] }, "3d-bounding-box-metadata": { "objects": [], "class_map": { "0": "Car", }, "type": "groundtruth/point_cloud_object_detection", "human-annotated": "yes", "creation-date": "2018-10-18T22:18:13.527256", "job-name": "identify-3d-objects", "adjustment-status": "adjusted", "dataset-object-attributes": {name: value, name: value} } }

3D 포인트 클라우드 객체 추적 출력

다음은 3D 포인트 클라우드 객체 추적 레이블 지정 작업의 출력 매니페스트 파일 예제입니다. 아래 예에서 빨간색 기울임꼴로 표시된 텍스트는 레이블 지정 작업 사양 및 출력 데이터에 따라 다릅니다. 줄임표(...)는 해당 목록의 연속성을 나타내며, 여기에서는 진행 중인 객체와 동일한 형식을 가진 추가 객체가 나타날 수 있습니다.

표준 요소 외에도 메타데이터에는 시퀀스에 레이블이 하나 이상 포함된 각 클래스를 나열하는 클래스 맵이 포함되어 있습니다. 하나 이상의 입방체가 수정된 경우, adjusted로 설정된 감사 워크플로의 메타데이터에 adjustment-status 파라미터가 있습니다.

{ "source-ref": "s3://AWSDOC-EXAMPLE-BUCKET/myfolder/seq1.json", "lidar-label-attribute-ref": "s3://<CustomerOutputLocation>/<labelingJobName>/annotations/consolidated-annotation/output/<datasetObjectId>/SeqLabel.json", "lidar-label-attribute-ref-metadata": { "objects": [ { "frame-no": 300, "confidence": [] }, { "frame-no": 301, "confidence": [] }, ... ], 'class-map': {'0': 'Car', '1': 'Person'}, 'type': 'groundtruth/point_cloud_object_tracking', 'human-annotated': 'yes', 'creation-date': '2019-11-12T01:18:14.271944', 'job-name': 'identify-3d-objects', "adjustment-status": "adjusted" } }

위의 예에서 seq1.json의 각 프레임에 대한 입방체 데이터는 Amazon S3 위치인 s3://<customerOutputLocation>/<labelingJobName>/annotations/consolidated-annotation/output/<datasetObjectId>/SeqLabel.jsonSeqLabel.json에 있게 됩니다. 다음은 이 레이블 시퀀스 파일의 예입니다.

시퀀스의 각 프레임은 frame-number, frame-name를 확인하고 해당하는 경우 frame-attributesannotations 목록을 확인합니다. 이 목록에는 해당 프레임에 그린 3D 입방체가 포함되어 있습니다. 각 주석에는 다음 정보가 포함됩니다.

  • class이 레이블 범주와 integer를 식별하는 <class>:<integer> 형식의 object-name은 데이터 세트에서 고유한 ID입니다.

  • 작업자가 입방체를 그릴 때 이는 여러 프레임에서 동일한 객체를 식별하는 모든 입방체에 연결되는 고유의 object-id에 연결됩니다.

  • 입력 매니페스트에서 지정한 각 클래스 또는 레이블 범주는 class-id에 연결됩니다. class-map를 사용하여 각 클래스 ID와 연결된 클래스를 식별합니다.

  • center-x, center-y, 및 center-z는 입방체의 중심 좌표로, 레이블 지정 작업에 사용되는 3D 포인트 클라우드 입력 데이터와 동일한 좌표계로 표시되어 있습니다.

  • length, widthheight는 입방체의 치수를 설명합니다.

  • yaw는 입방체의 방향(진행 방향)을 라디안 단위로 설명하는 데 사용됩니다.

    참고

    yaw는 이제 오른손 데카르트 체계로 표시됩니다. 이 기능은 2022년 9월 2일 19:02:17 UTC에 추가되었으므로 다음을 사용하여 그 이전의 출력 데이터에서 yaw 측정값을 변환할 수 있습니다(모든 단위는 라디안).

    old_yaw_in_output = pi - yaw
  • 이 정의에서 +x는 오른쪽, +y는 앞쪽, +z는 기준 평면에서 위쪽 방향입니다. 회전 순서는 x - y - z입니다. roll, pitchyaw은 오른손 데카르트 체계로 표시됩니다. 3D 공간에서 roll은 x축, pitch는 y축, yaw는 z축을 따라갑니다. 세 개 모두 시계 반대 방향입니다.

  • 해당 클래스에 대한 입력 매니페스트 파일에 레이블 속성을 포함시킨 경우에는 작업자가 레이블 속성을 선택한 모든 입방체에 label-category-attributes 파라미터가 포함되어 있습니다.

{ "tracking-annotations": [ { "frame-number": 0, "frame-name": "0.txt.pcd", "frame-attributes": {name: value, name: value}, "annotations": [ { "label-category-attributes": {}, "object-name": "Car:4", "class-id": 0, "center-x": -2.2906369208300674, "center-y": 103.73924823843463, "center-z": 0.37634114027023313, "length": 4, "width": 2, "height": 2, "roll": 0, "pitch": 0, "yaw": 1.5827222214406014, "object-id": "ae5dc770-a782-11ea-b57d-67c51a0561a1" }, { "label-category-attributes": { "Occlusion": "Partial", "Type": "Sedan" }, "object-name": "Car:1", "class-id": 0, "center-x": -2.6451293634707413, "center-y": 124.9534455706848, "center-z": 0.5020834081743839, "length": 4, "width": 2, "height": 2.080488827301309, "roll": 0, "pitch": 0, "yaw": -1.5963335581398077, "object-id": "06efb020-a782-11ea-b57d-67c51a0561a1" }, { "label-category-attributes": { "Occlusion": "Partial", "Type": "Sedan" }, "object-name": "Car:2", "class-id": 0, "center-x": -5.205611313118477, "center-y": 99.91731932137061, "center-z": 0.22917217081212138, "length": 3.8747142207671956, "width": 1.9999999999999918, "height": 2, "roll": 0, "pitch": 0, "yaw": 1.5672228760316775, "object-id": "26fad020-a782-11ea-b57d-67c51a0561a1" } ] }, { "frame-number": 1, "frame-name": "1.txt.pcd", "frame-attributes": {}, "annotations": [ { "label-category-attributes": {}, "object-name": "Car:4", "class-id": 0, "center-x": -2.2906369208300674, "center-y": 103.73924823843463, "center-z": 0.37634114027023313, "length": 4, "width": 2, "height": 2, "roll": 0, "pitch": 0, "yaw": 1.5827222214406014, "object-id": "ae5dc770-a782-11ea-b57d-67c51a0561a1" }, { "label-category-attributes": { "Occlusion": "Partial", "Type": "Sedan" }, "object-name": "Car:1", "class-id": 0, "center-x": -2.6451293634707413, "center-y": 124.9534455706848, "center-z": 0.5020834081743839, "length": 4, "width": 2, "height": 2.080488827301309, "roll": 0, "pitch": 0, "yaw": -1.5963335581398077, "object-id": "06efb020-a782-11ea-b57d-67c51a0561a1" }, { "label-category-attributes": { "Occlusion": "Partial", "Type": "Sedan" }, "object-name": "Car:2", "class-id": 0, "center-x": -5.221311072916759, "center-y": 100.4639841045424, "center-z": 0.22917217081212138, "length": 3.8747142207671956, "width": 1.9999999999999918, "height": 2, "roll": 0, "pitch": 0, "yaw": 1.5672228760316775, "object-id": "26fad020-a782-11ea-b57d-67c51a0561a1" } ] } ] }

3D-2D 객체 추적 포인트 클라우드 객체 추적 출력

다음은 3D 포인트 클라우드 객체 추적 레이블 지정 작업의 출력 매니페스트 파일 예제입니다. 아래 예에서 빨간색 기울임꼴로 표시된 텍스트는 레이블 지정 작업 사양 및 출력 데이터에 따라 다릅니다. 줄임표(...)는 해당 목록의 연속성을 나타내며, 여기에서는 진행 중인 객체와 동일한 형식을 가진 추가 객체가 나타날 수 있습니다.

표준 요소 외에도 메타데이터에는 시퀀스에 레이블이 하나 이상 포함된 각 클래스를 나열하는 클래스 맵이 포함되어 있습니다. 하나 이상의 입방체가 수정된 경우, adjusted로 설정된 감사 워크플로의 메타데이터에 adjustment-status 파라미터가 있습니다.

{ "source-ref": "s3://iad-groundtruth-lidar-test-bucket/artifacts/gt-point-cloud-demos/sequences/seq2.json", "source-ref-metadata": { "json-paths": [ "number-of-frames", "prefix", "frames{frame-no, frame}" ] }, "3D2D-linking-ref": "s3://iad-groundtruth-lidar-test-bucket/xyz/3D2D-linking/annotations/consolidated-annotation/output/0/SeqLabel.json", "3D2D-linking-ref-metadata": { "objects": [ { "frame-no": 0, "confidence": [] }, { "frame-no": 1, "confidence": [] }, { "frame-no": 2, "confidence": [] }, { "frame-no": 3, "confidence": [] }, { "frame-no": 4, "confidence": [] }, { "frame-no": 5, "confidence": [] }, { "frame-no": 6, "confidence": [] }, { "frame-no": 7, "confidence": [] }, { "frame-no": 8, "confidence": [] }, { "frame-no": 9, "confidence": [] } ], "class-map": { "0": "Car" }, "type": "groundtruth/point_cloud_object_tracking", "human-annotated": "yes", "creation-date": "2023-01-19T02:55:10.206508", "job-name": "mcm-linking" }, "3D2D-linking-chain-ref": "s3://iad-groundtruth-lidar-test-bucket/xyz/3D2D-linking-chain/annotations/consolidated-annotation/output/0/SeqLabel.json", "3D2D-linking-chain-ref-metadata": { "objects": [ { "frame-no": 0, "confidence": [] }, { "frame-no": 1, "confidence": [] }, { "frame-no": 2, "confidence": [] }, { "frame-no": 3, "confidence": [] }, { "frame-no": 4, "confidence": [] }, { "frame-no": 5, "confidence": [] }, { "frame-no": 6, "confidence": [] }, { "frame-no": 7, "confidence": [] }, { "frame-no": 8, "confidence": [] }, { "frame-no": 9, "confidence": [] } ], "class-map": { "0": "Car" }, "type": "groundtruth/point_cloud_object_tracking", "human-annotated": "yes", "creation-date": "2023-01-19T03:29:49.149935", "job-name": "3d2d-linking-chain" } }

위의 예에서 seq2.json의 각 프레임에 대한 입방체 데이터는 Amazon S3 위치인 s3://<customerOutputLocation>/<labelingJobName>/annotations/consolidated-annotation/output/<datasetObjectId>/SeqLabel.jsonSeqLabel.json에 있게 됩니다. 다음은 이 레이블 시퀀스 파일의 예입니다.

시퀀스의 각 프레임은 frame-number, frame-name를 확인하고 해당하는 경우 frame-attributesannotations 목록을 확인합니다. 이 목록에는 해당 프레임에 그린 3D 입방체가 포함되어 있습니다. 각 주석에는 다음 정보가 포함됩니다.

  • class이 레이블 범주와 integer를 식별하는 <class>:<integer> 형식의 object-name은 데이터 세트에서 고유한 ID입니다.

  • 작업자가 입방체를 그릴 때 이는 여러 프레임에서 동일한 객체를 식별하는 모든 입방체에 연결되는 고유의 object-id에 연결됩니다.

  • 입력 매니페스트에서 지정한 각 클래스 또는 레이블 범주는 class-id에 연결됩니다. class-map를 사용하여 각 클래스 ID와 연결된 클래스를 식별합니다.

  • center-x, center-y, 및 center-z는 입방체의 중심 좌표로, 레이블 지정 작업에 사용되는 3D 포인트 클라우드 입력 데이터와 동일한 좌표계로 표시되어 있습니다.

  • length, widthheight는 입방체의 치수를 설명합니다.

  • yaw는 입방체의 방향(진행 방향)을 라디안 단위로 설명하는 데 사용됩니다.

    참고

    yaw는 이제 오른손 데카르트 체계로 표시됩니다. 이 기능은 2022년 9월 2일 19:02:17 UTC에 추가되었으므로 다음을 사용하여 그 이전의 출력 데이터에서 yaw 측정값을 변환할 수 있습니다(모든 단위는 라디안).

    old_yaw_in_output = pi - yaw
  • 이 정의에서 +x는 오른쪽, +y는 앞쪽, +z는 기준 평면에서 위쪽 방향입니다. 회전 순서는 x - y - z입니다. roll, pitchyaw은 오른손 데카르트 체계로 표시됩니다. 3D 공간에서 roll은 x축, pitch는 y축, yaw는 z축을 따라갑니다. 세 개 모두 시계 반대 방향입니다.

  • 해당 클래스에 대한 입력 매니페스트 파일에 레이블 속성을 포함시킨 경우에는 작업자가 레이블 속성을 선택한 모든 입방체에 label-category-attributes 파라미터가 포함되어 있습니다.

{ "lidar": { "tracking-annotations": [ { "frame-number": 0, "frame-name": "0.txt.pcd", "annotations": [ { "label-category-attributes": { "Type": "Sedan" }, "object-name": "Car:1", "class-id": 0, "center-x": 12.172361721602815, "center-y": 120.23067521992364, "center-z": 1.590525771183712, "length": 4, "width": 2, "height": 2, "roll": 0, "pitch": 0, "yaw": 0, "object-id": "505b39e0-97a4-11ed-8903-dd5b8b903715" }, { "label-category-attributes": {}, "object-name": "Car:4", "class-id": 0, "center-x": 17.192725195301094, "center-y": 114.55705365827872, "center-z": 1.590525771183712, "length": 4, "width": 2, "height": 2, "roll": 0, "pitch": 0, "yaw": 0, "object-id": "1afcb670-97a9-11ed-9a84-ff627d099e16" } ], "frame-attributes": {} }, { "frame-number": 1, "frame-name": "1.txt.pcd", "annotations": [ { "label-category-attributes": { "Type": "Sedan" }, "object-name": "Car:1", "class-id": 0, "center-x": -1.6841480600695489, "center-y": 126.20198882749516, "center-z": 1.590525771183712, "length": 4, "width": 2, "height": 2, "roll": 0, "pitch": 0, "yaw": 0, "object-id": "505b39e0-97a4-11ed-8903-dd5b8b903715" }, { "label-category-attributes": {}, "object-name": "Car:4", "class-id": 0, "center-x": 17.192725195301094, "center-y": 114.55705365827872, "center-z": 1.590525771183712, "length": 4, "width": 2, "height": 2, "roll": 0, "pitch": 0, "yaw": 0, "object-id": "1afcb670-97a9-11ed-9a84-ff627d099e16" } ], "frame-attributes": {} }, { "frame-number": 2, "frame-name": "2.txt.pcd", "annotations": [ { "label-category-attributes": { "Type": "Sedan" }, "object-name": "Car:1", "class-id": 0, "center-x": -1.6841480600695489, "center-y": 126.20198882749516, "center-z": 1.590525771183712, "length": 4, "width": 2, "height": 2, "roll": 0, "pitch": 0, "yaw": 0, "object-id": "505b39e0-97a4-11ed-8903-dd5b8b903715" }, { "label-category-attributes": {}, "object-name": "Car:4", "class-id": 0, "center-x": 17.192725195301094, "center-y": 114.55705365827872, "center-z": 1.590525771183712, "length": 4, "width": 2, "height": 2, "roll": 0, "pitch": 0, "yaw": 0, "object-id": "1afcb670-97a9-11ed-9a84-ff627d099e16" } ], "frame-attributes": {} } ] }, "camera-0": { "tracking-annotations": [ { "frame-no": 0, "frame": "0.txt.pcd", "annotations": [ { "label-category-attributes": { "Occlusion": "Partial" }, "object-name": "Car:2", "class-id": 0, "width": 223, "height": 164, "top": 225, "left": 486, "object-id": "5229df60-97a4-11ed-8903-dd5b8b903715" } ], "frame-attributes": {} }, { "frame-no": 1, "frame": "1.txt.pcd", "annotations": [ { "label-category-attributes": {}, "object-name": "Car:4", "class-id": 0, "width": 252, "height": 246, "top": 237, "left": 473, "object-id": "1afcb670-97a9-11ed-9a84-ff627d099e16" } ], "frame-attributes": {} } ] } }

객체의 입방체 및 경계 상자는 공통 객체 ID를 통해 연결됩니다.