객체 감지기 가이드

콘솔의 사람 흐리게 처리 모델 카드

객체 감지기 모델은 동영상에서 500개가 넘는 유형의 객체를 식별하고 찾을 수 있습니다. 이 모델은 동영상 스트림을 입력으로 받아 감지 결과가 포함된 프로토콜 버퍼를 BigQuery로 출력합니다. 모델은 1FPS로 실행됩니다. 객체 감지기 모델을 사용하는 앱을 만들 때는 모델 출력을 BigQuery 커넥터로 전달해야 예측 출력을 볼 수 있습니다.

객체 감지기 모델 앱 사양

다음 안내에 따라Google Cloud 콘솔에서 물체 감지기 모델을 만듭니다.

콘솔

Google Cloud 콘솔에서 앱 만들기

  1. 객체 감지기 앱을 만들려면 애플리케이션 빌드의 안내를 따르세요.

    애플리케이션 탭으로 이동

객체 감지기 모델 추가

  1. 모델 노드를 추가할 때 선행 학습된 모델 목록에서 객체 감지기를 선택합니다.

BigQuery 커넥터 추가

  1. 출력을 사용하려면 앱을 BigQuery 커넥터에 연결합니다.

    BigQuery 커넥터 사용에 관한 자세한 내용은 BigQuery에 데이터 연결 및 저장을 참고하세요. BigQuery 가격 정보는 BigQuery 가격 책정 페이지를 참고하세요.

BigQuery에서 출력 결과 보기

모델이 BigQuery에 데이터를 출력한 후 BigQuery 대시보드에서 출력 주석을 확인합니다.

BigQuery 경로를 지정하지 않은 경우 Vertex AI Vision 스튜디오 페이지에서 시스템에서 생성한 경로를 볼 수 있습니다.

  1. Google Cloud 콘솔에서 BigQuery 페이지를 엽니다.

    BigQuery로 이동

  2. 대상 프로젝트, 데이터 세트 이름, 애플리케이션 이름 옆에 있는 펼치기를 선택합니다.

    BigQuery에서 앱 테이블 선택

  3. 테이블 세부정보 보기에서 미리보기를 클릭합니다. 주석 열에서 결과를 확인합니다. 출력 형식에 관한 설명은 모델 출력을 참고하세요.

애플리케이션은 결과를 시간순으로 저장합니다. 가장 오래된 결과는 테이블의 시작 부분에 표시되고 가장 최근 결과는 테이블의 끝에 추가됩니다. 최신 결과를 확인하려면 페이지 번호를 클릭하여 마지막 표 페이지로 이동합니다.

모델 출력

모델은 각 동영상 프레임의 경계 상자, 객체 라벨, 신뢰도 점수를 출력합니다. 출력에는 타임스탬프도 포함됩니다. 출력 스트림의 속도는 초당 1프레임입니다.

다음의 프로토콜 버퍼 출력 예에서 다음 사항에 유의하세요.

  • 타임스탬프 - 타임스탬프는 이 추론 결과의 시간에 해당합니다.
  • 식별된 상자 - 상자 ID, 경계 상자 정보, 신뢰도 점수, 객체 예측을 포함하는 기본 감지 결과입니다.

샘플 주석 출력 JSON 객체

{
  "currentTime": "2022-11-09T02:18:54.777154048Z",
  "identifiedBoxes": [
    {
      "boxId":"0",
      "normalizedBoundingBox": {
        "xmin": 0.6963465,
        "ymin": 0.23144785,
        "width": 0.23944569,
        "height": 0.3544306
      },
      "confidenceScore": 0.49874997,
      "entity": {
        "labelId": "0",
        "labelString": "Houseplant"
      }
    }
  ]
}

프로토콜 버퍼 정의

// The prediction result protocol buffer for object detection
message ObjectDetectionPredictionResult {
  // Current timestamp
  protobuf.Timestamp timestamp = 1;

  // The entity information for annotations from object detection prediction
  // results
  message Entity {
    // Label id
    int64 label_id = 1;

    // The human-readable label string
    string label_string = 2;
  }

  // The identified box contains the location and the entity of the object
  message IdentifiedBox {
    // An unique id for this box
    int64 box_id = 1;

    // Bounding Box in normalized coordinates [0,1]
    message NormalizedBoundingBox {
      // Min in x coordinate
      float xmin = 1;
      // Min in y coordinate
      float ymin = 2;
      // Width of the bounding box
      float width = 3;
      // Height of the bounding box
      float height = 4;
    }
    // Bounding Box in the normalized coordinates
    NormalizedBoundingBox normalized_bounding_box = 2;

    // Confidence score associated with this bounding box
    float confidence_score = 3;

    // Entity of this box
    Entity entity = 4;
  }
  // A list of identified boxes
  repeated IdentifiedBox identified_boxes = 2;
}

권장사항 및 제한사항

객체 감지기를 사용할 때 최상의 결과를 얻으려면 데이터를 가져오고 모델을 사용할 때 다음 사항을 고려하세요.

소스 데이터 권장사항

권장: 사진의 물체가 선명하고 다른 물체에 가려지거나 대부분 가려지지 않아야 합니다.

객체 감지기가 올바르게 처리할 수 있는 샘플 이미지 데이터:

명확하게 보이는 물체의 샘플 이미지
이미지 소스: UnsplashSpacejoy

모델에 이 이미지 데이터를 전송하면 다음과 같은 객체 감지 정보가 반환됩니다*.

* 다음 이미지의 주석은 설명을 위한 예시일 뿐입니다. 경계 상자, 라벨, 신뢰도 점수는 수동으로 그리고 모델이나 Google Cloud 콘솔 도구에서 추가하지 않습니다.

명확하게 보이는 물체의 샘플 이미지
이미지 소스: UnsplashSpacejoy(주석 수동 추가됨).

권장하지 않음: 프레임에서 주요 객체 항목이 너무 작은 이미지 데이터는 피하세요.

객체 감지기가 올바르게 처리할 수 없는 샘플 이미지 데이터:

감지할 수 없을 만큼 작은 객체 항목의 샘플 이미지
이미지 소스: Unsplash버나드 헤르만트(이미지 잘림).

권장하지 않음: 다른 객체에 부분적으로 또는 완전히 가려진 주요 객체 항목을 보여주는 이미지 데이터는 피하세요.

객체 감지기가 올바르게 처리할 수 없는 샘플 이미지 데이터:

다른 객체에 부분적으로 가려진 물체 항목의 샘플 이미지
이미지 출처: UnsplashŞahin Sezer Dinçer

제한사항

  • 동영상 해상도: 권장 최대 입력 동영상 해상도는 1920x1080이고 권장 최소 해상도는 160x120입니다.
  • 조명: 모델 성능은 조명 조건에 민감합니다. 밝기 또는 어두움이 극단적이면 감지 품질이 저하될 수 있습니다.
  • 객체 크기: 객체 감지기에는 감지 가능한 최소 객체 크기가 있습니다. 타겟 객체가 동영상 데이터에서 충분히 크고 눈에 잘 띄어야 합니다.