๊ฐ์ฒด ์ถ”์ ์šฉ ๋™์˜์ƒ ํ•™์Šต ๋ฐ์ดํ„ฐ ์ค€๋น„

์ด ํŽ˜์ด์ง€์—์„œ๋Š” ๋™์˜์ƒ ๊ฐ์ฒด ์ถ”์  ๋ชจ๋ธ์„ ํ•™์Šต์‹œํ‚ค๊ธฐ ์œ„ํ•ด Vertex AI ๋ฐ์ดํ„ฐ ์„ธํŠธ์—์„œ ์‚ฌ์šฉํ•  ๋™์˜์ƒ ํ•™์Šต ๋ฐ์ดํ„ฐ๋ฅผ ์ค€๋น„ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ์„น์…˜์—์„œ๋Š” ๋ฐ์ดํ„ฐ ์š”๊ตฌ์‚ฌํ•ญ, ์Šคํ‚ค๋งˆ ํŒŒ์ผ, ์Šคํ‚ค๋งˆ์—์„œ ์ •์˜๋œ ๋ฐ์ดํ„ฐ ๊ฐ€์ ธ์˜ค๊ธฐ ํŒŒ์ผ(JSONL ๋ฐ CSV)์˜ ํ˜•์‹์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๋˜๋Š” ์ฃผ์„ ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š์€ ๋™์˜์ƒ์„ ๊ฐ€์ ธ์™€ ๋‚˜์ค‘์— Google Cloud ์ฝ˜์†”์„ ํ†ตํ•ด ์ฃผ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค(Google Cloud ์ฝ˜์†”์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ผ๋ฒจ ์ง€์ • ์ฐธ๊ณ ).

๋ฐ์ดํ„ฐ ์š”๊ตฌ์‚ฌํ•ญ

๋‹ค์Œ ์š”๊ตฌ์‚ฌํ•ญ์€ AutoML ๋˜๋Š” ์ปค์Šคํ…€ ํ•™์Šต ๋ชจ๋ธ์„ ํ•™์Šต์‹œํ‚ค๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๋ฐ์ดํ„ฐ ์„ธํŠธ์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

  • Vertex AI๋Š” ๋ชจ๋ธ์„ ํ•™์Šต์‹œํ‚ค๊ฑฐ๋‚˜ ์˜ˆ์ธก์„ ์š”์ฒญํ•  ๋•Œ(๋™์˜์ƒ์— ์ฃผ์„ ๋‹ฌ๊ธฐ) ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋™์˜์ƒ ํ˜•์‹์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

    • .MOV
    • .MPEG4
    • .MP4
    • .AVI
  • ์›น ์ฝ˜์†”์—์„œ ๋™์˜์ƒ ์ฝ˜ํ…์ธ ๋ฅผ ๋ณด๊ฑฐ๋‚˜ ๋™์˜์ƒ์— ์ฃผ์„์„ ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด ๋™์˜์ƒ์ด ๋ธŒ๋ผ์šฐ์ €์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ง€์›ํ•˜๋Š” ํ˜•์‹์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ๋ธŒ๋ผ์šฐ์ €์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ .MOV ๋˜๋Š” .AVI ์ฝ˜ํ…์ธ ๋ฅผ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ .MPEG4 ๋˜๋Š” .MP4 ๋™์˜์ƒ ํ˜•์‹์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

  • ์ตœ๋Œ€ ํŒŒ์ผ ํฌ๊ธฐ๋Š” 50GB์ž…๋‹ˆ๋‹ค(์ตœ๋Œ€ ์žฌ์ƒ ์‹œ๊ฐ„ 3์‹œ๊ฐ„). ์ปจํ…Œ์ด๋„ˆ์— ์ž˜๋ชป๋œ ๋˜๋Š” ๋น„์–ด ์žˆ๋Š” ํƒ€์ž„์Šคํƒฌํ”„๊ฐ€ ํฌํ•จ๋œ ๊ฐœ๋ณ„ ๋™์˜์ƒ ํŒŒ์ผ์€ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  • ๊ฐ ๋ฐ์ดํ„ฐ ์„ธํŠธ์˜ ์ตœ๋Œ€ ๋ผ๋ฒจ ์ˆ˜๋Š” 1,000๊ฐœ๋กœ ์ œํ•œ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๊ฐ€์ ธ์˜ค๊ธฐ ํŒŒ์ผ์˜ ๋™์˜์ƒ์— 'ML_USE' ๋ผ๋ฒจ์„ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•™์Šต ์‹œ์—๋Š” ์ด๋Ÿฌํ•œ ๋ผ๋ฒจ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋™์˜์ƒ๊ณผ ํ•ด๋‹น ์ฃผ์„์„ 'ํ•™์Šต' ๋˜๋Š” 'ํ…Œ์ŠคํŠธ' ์„ธํŠธ๋กœ ๋ถ„ํ• ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋™์˜์ƒ ๊ฐ์ฒด ์ถ”์ ์˜ ๊ฒฝ์šฐ ๋‹ค์Œ ์‚ฌํ•ญ์— ์œ ์˜ํ•˜์„ธ์š”.

    • ๊ฐ ๋ฐ์ดํ„ฐ ์„ธํŠธ์—์„œ ๋ผ๋ฒจ์ด ์ง€์ •๋œ ์ตœ๋Œ€ ๋™์˜์ƒ ํ”„๋ ˆ์ž„ ์ˆ˜๋Š” 150,000๊ฐœ๋กœ ์ œํ•œ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
    • ๊ฐ ๋ฐ์ดํ„ฐ ์„ธํŠธ์—์„œ ์ฃผ์„์ด ์ถ”๊ฐ€๋œ ๊ฒฝ๊ณ„ ์ƒ์ž์˜ ์ตœ๋Œ€ ํ•ฉ๊ณ„๋Š” 1,000,000๊ฐœ๋กœ ์ œํ•œ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
    • ๊ฐ ์ฃผ์„ ์„ธํŠธ์˜ ์ตœ๋Œ€ ๋ผ๋ฒจ ์ˆ˜๋Š” 1,000๊ฐœ๋กœ ์ œํ•œ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

AutoML ๋ชจ๋ธ ํ•™์Šต์— ์‚ฌ์šฉ๋˜๋Š” ๋™์˜์ƒ ๋ฐ์ดํ„ฐ ๊ถŒ์žฅ์‚ฌํ•ญ

๋‹ค์Œ ๋ชจ๋ธ์€ AutoML ๋ชจ๋ธ์„ ํ•™์Šต์‹œํ‚ค๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๋ฐ์ดํ„ฐ ์„ธํŠธ์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

  • ํ•™์Šต ๋ฐ์ดํ„ฐ๋Š” ์˜ˆ์ธก์„ ์ˆ˜ํ–‰ํ•  ๋ฐ์ดํ„ฐ์™€ ์ตœ๋Œ€ํ•œ ์œ ์‚ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์‚ฌ์šฉ ์‚ฌ๋ก€์— ๋ณด์•ˆ ์นด๋ฉ”๋ผ ์˜์ƒ์ฒ˜๋Ÿผ ํ๋ฆฟํ•œ ์ €ํ•ด์ƒ๋„ ๋™์˜์ƒ์ด ํฌํ•จ๋œ๋‹ค๋ฉด ํ•™์Šต ๋ฐ์ดํ„ฐ๋„ ํ๋ฆฟํ•œ ์ €ํ•ด์ƒ๋„ ๋™์˜์ƒ์œผ๋กœ ๊ตฌ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์ผ๋ฐ˜์ ์œผ๋กœ ๋‹ค์–‘ํ•œ ๊ฐ๋„, ํ•ด์ƒ๋„, ๋ฐฐ๊ฒฝ์œผ๋กœ ์ดฌ์˜ํ•œ ํ•™์Šต ๋™์˜์ƒ์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

  • ์ธ๊ฐ„์ด ์ง€์ •ํ•  ์ˆ˜ ์—†๋Š” ๋ผ๋ฒจ์€ Vertex AI ๋ชจ๋ธ๋„ ์ผ๋ฐ˜์ ์œผ๋กœ ์˜ˆ์ธกํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋งŒ์ผ ๋™์˜์ƒ์„ 1~2์ดˆ ๋ณด๊ณ  ๋ผ๋ฒจ์„ ์ง€์ •ํ•˜๋„๋ก ์‚ฌ๋žŒ์„ ํ•™์Šต์‹œํ‚ฌ ์ˆ˜ ์—†๋‹ค๋ฉด ์ด ๋ชจ๋ธ๋„ ๊ทธ๋ ‡๊ฒŒ ํ•˜๋„๋ก ํ•™์Šต์‹œํ‚ฌ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

  • ๊ฐ€์žฅ ํ”ํ•œ ๋ผ๋ฒจ์˜ ๋™์˜์ƒ์ด ๊ฐ€์žฅ ํ”ํ•˜์ง€ ์•Š์€ ๋ผ๋ฒจ์˜ ๋™์˜์ƒ๋ณด๋‹ค ์ตœ๋Œ€ 100๋ฐฐ ๋งŽ์„ ๋•Œ ๋ชจ๋ธ์˜ ์„ฑ๋Šฅ์ด ๊ฐ€์žฅ ์ข‹์Šต๋‹ˆ๋‹ค. ๋นˆ๋„๊ฐ€ ๋‚ฎ์€ ๋ผ๋ฒจ์„ ์‚ญ์ œํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๊ฐ์ฒด ์ถ”์ ์˜ ๊ฒฝ์šฐ

    • ์ตœ์†Œ ๊ฒฝ๊ณ„ ์ƒ์ž ํฌ๊ธฐ๋Š” 10x10ํ”ฝ์…€์ž…๋‹ˆ๋‹ค.
    • ๋™์˜์ƒ ํ”„๋ ˆ์ž„ ํ•ด์ƒ๋„๊ฐ€ 1024x1024 ํ”ฝ์…€๋ณด๋‹ค ํ›จ์”ฌ ํฐ ๊ฒฝ์šฐ AutoML ๊ฐ์ฒด ์ถ”์ ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋ ˆ์ž„ ์ •๊ทœํ™” ๊ณผ์ • ์ค‘์— ์ผ๋ถ€ ์ด๋ฏธ์ง€ ํ’ˆ์งˆ์ด ์†์‹ค๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ๊ฐ ๊ณ ์œ  ๋ผ๋ฒจ์€ ๊ฐœ๋ณ„ ๋™์˜์ƒ ํ”„๋ ˆ์ž„ ์ตœ์†Œ 3๊ฐœ ์ด์ƒ์— ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๊ฐ ๋ผ๋ฒจ์—๋Š” ์ฃผ์„์ด ์ตœ์†Œ 10๊ฐœ ์ด์ƒ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์Šคํ‚ค๋งˆ ํŒŒ์ผ

  • ์ฃผ์„์„ ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•œ JSONL ํŒŒ์ผ์„ ๋งŒ๋“ค ๋•Œ ๊ณต๊ฐœ์ ์œผ๋กœ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค์Œ ์Šคํ‚ค๋งˆ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ์Šคํ‚ค๋งˆ ํŒŒ์ผ์€ ๋ฐ์ดํ„ฐ ์ž…๋ ฅ ํŒŒ์ผ์˜ ํ˜•์‹์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ํŒŒ์ผ ๊ตฌ์กฐ๋Š” OpenAPI ์Šคํ‚ค๋งˆ ํ…Œ์ŠคํŠธ๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.

    ๊ฐ์ฒด ์ถ”์  ์Šคํ‚ค๋งˆ ํŒŒ์ผ:

    gs://google-cloud-aiplatform/schema/dataset/ioformat/object_tracking_io_format_1.0.0.yaml

    ์ „์ฒด ์Šคํ‚ค๋งˆ ํŒŒ์ผ

    
    title: VideoObjectTracking
    version: 1.0.0
    description: >
      Import and export format for importing/exporting videos together with
      temporal bounding box annotations.
    type: object
    required:
    - videoGcsUri
    properties:
      videoGcsUri:
        type: string
        description: >
          A Cloud Storage URI pointing to a video. Up to 50 GB in size and
          up to 3 hours in duration. Supported file mime types: `video/mp4`,
          `video/avi`, `video/quicktime`.
      TemporalBoundingBoxAnnotations:
        type: array
        description: Multiple temporal bounding box annotations. Each on a frame of the video.
        items:
          type: object
          description: >
            Temporal bounding box anntoation on video. `xMin`, `xMax`, `yMin`, and
            `yMax` are relative to the video frame size, and the point 0,0 is in the
            top left of the frame.
          properties:
            displayName:
              type: string
              description: >
                It will be imported as/exported from AnnotationSpec's display name,
                i.e., the name of the label/class.
            xMin:
              description: The leftmost coordinate of the bounding box.
              type: number
              format: double
            xMax:
              description: The rightmost coordinate of the bounding box.
              type: number
              format: double
            yMin:
              description: The topmost coordinate of the bounding box.
              type: number
              format: double
            yMax:
              description: The bottommost coordinate of the bounding box.
              type: number
              format: double
            timeOffset:
              type: string
              description: >
                A time offset of a video in which the object has been detected.
                Expressed as a number of seconds as measured from the
                start of the video, with fractions up to a microsecond precision, and
                with "s" appended at the end.
            instanceId:
              type: number
              format: integer
              description: >
                The instance of the object, expressed as a positive integer. Used to
                tell apart objects of the same type when multiple are present on a
                single video.
            annotationResourceLabels:
              description: Resource labels on the Annotation.
              type: object
              additionalProperties:
                type: string
      dataItemResourceLabels:
        description: Resource labels on the DataItem.
        type: object
        additionalProperties:
          type: string

์ž…๋ ฅ ํŒŒ์ผ

๋™์˜์ƒ ๊ฐ์ฒด ์ถ”์  ํ•™์Šต ๋ฐ์ดํ„ฐ์˜ ํ˜•์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋ ค๋ฉด JSONL ๋˜๋Š” CSV ํŒŒ์ผ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

JSONL

๊ฐ ์ค„์˜ JSON:
์ž์„ธํ•œ ๋‚ด์šฉ์€ ๊ฐ์ฒด ์ถ”์  YAML ํŒŒ์ผ์„ ์ฐธ์กฐํ•˜์„ธ์š”.


{
	"videoGcsUri": "gs://bucket/filename.ext",
	"TemporalBoundingBoxAnnotations": [{
		"displayName": "LABEL",
		"xMin": "leftmost_coordinate_of_the_bounding box",
		"xMax": "rightmost_coordinate_of_the_bounding box",
		"yMin": "topmost_coordinate_of_the_bounding box",
		"yMax": "bottommost_coordinate_of_the_bounding box",
		"timeOffset": "timeframe_object-detected"
                "instanceId": "instance_of_object
                "annotationResourceLabels": "resource_labels"
	}],
	"dataItemResourceLabels": {
		"aiplatform.googleapis.com/ml_use": "train|test"
	}
}

JSONL ์˜ˆ์‹œ - ๋™์˜์ƒ ๊ฐ์ฒด ์ถ”์ :


{'videoGcsUri': 'gs://demo-data/video1.mp4', 'temporal_bounding_box_annotations': [{'displayName': 'horse', 'instance_id': '-1', 'time_offset': '4.000000s', 'xMin': '0.668912', 'yMin': '0.560642', 'xMax': '1.000000', 'yMax': '1.000000'}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "training"}}
{'videoGcsUri': 'gs://demo-data/video2.mp4', 'temporal_bounding_box_annotations': [{'displayName': 'horse', 'instance_id': '-1', 'time_offset': '71.000000s', 'xMin': '0.679056', 'yMin': '0.070957', 'xMax': '0.801716', 'yMax': '0.290358'}], "dataItemResourceLabels": {"aiplatform.googleapis.com/ml_use": "test"}}
...

CSV

CSV ํŒŒ์ผ์˜ ํ–‰ ํ˜•์‹:

[ML_USE,]VIDEO_URI,LABEL,[INSTANCE_ID],TIME_OFFSET,BOUNDING_BOX

์—ด ๋ชฉ๋ก

  • ML_USE(์„ ํƒ ์‚ฌํ•ญ). ๋ชจ๋ธ์„ ํ•™์Šต์‹œํ‚ฌ ๋•Œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„ํ• ํ•˜๋ ค๋Š” ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค. ํ•™์Šต ๋˜๋Š” ํ…Œ์ŠคํŠธ ์‚ฌ์šฉ.
  • VIDEO_URI. ์ด ํ•„๋“œ์—๋Š” ๋™์˜์ƒ์˜ Cloud Storage URI๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. Cloud Storage URI๋Š” ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.
  • LABEL. ๋ผ๋ฒจ์€ ๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•ด์•ผ ํ•˜๋ฉฐ ๋ฌธ์ž, ์ˆซ์ž, ๋ฐ‘์ค„๋งŒ ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. CSV ํŒŒ์ผ์— ๊ฐ ํ–‰๋งˆ๋‹ค ๋‹ค๋ฅธ ๋ผ๋ฒจ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ๊ฐ ๋™์ผํ•œ ๋™์˜์ƒ ์„ธ๊ทธ๋จผํŠธ๋ฅผ ์‹๋ณ„ํ•˜๋Š” ์—ฌ๋Ÿฌ ํ–‰์„ ์ถ”๊ฐ€ํ•˜์—ฌ ๋™์˜์ƒ์— ์—ฌ๋Ÿฌ ๋ผ๋ฒจ์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • INSTANCE_ID(์„ ํƒ ์‚ฌํ•ญ). ๋™์˜์ƒ์˜ ๋™์˜์ƒ ํ”„๋ ˆ์ž„์—์„œ ๊ฐ์ฒด ์ธ์Šคํ„ด์Šค๋ฅผ ์‹๋ณ„ํ•˜๋Š” ์ธ์Šคํ„ด์Šค ID(์„ ํƒ์‚ฌํ•ญ). ์ด ํ•ญ๋ชฉ์ด ์ œ๊ณต๋˜๋ฉด AutoML Object Tracking์—์„œ ๊ฐ์ฒด ์ถ”์  ๋ฏธ์„ธ ์กฐ์ •, ํ•™์Šต, ํ‰๊ฐ€์— ์ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ƒ์ดํ•œ ๋™์˜์ƒ ํ”„๋ ˆ์ž„์— ์กด์žฌํ•˜๋Š” ๋™์ผํ•œ ๊ฐ์ฒด ์ธ์Šคํ„ด์Šค์˜ ๊ฒฝ๊ณ„ ์ƒ์ž์—๋Š” ๋™์ผํ•œ ์ธ์Šคํ„ด์Šค ID๊ฐ€ ๋ผ๋ฒจ๋กœ ์ง€์ •๋ฉ๋‹ˆ๋‹ค. ์ธ์Šคํ„ด์Šค ID๋Š” ๊ฐ ๋™์˜์ƒ์—์„œ๋Š” ๊ณ ์œ ํ•˜์ง€๋งŒ ๋ฐ์ดํ„ฐ ์„ธํŠธ์—์„œ๋Š” ๊ณ ์œ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋‘ ๋™์˜์ƒ์˜ ๋‘ ๊ฐ์ฒด๊ฐ€ ๋™์ผํ•œ ์ธ์Šคํ„ด์Šค ID๋ฅผ ๊ฐ–๊ณ  ์žˆ๋‹ค๊ณ  ํ•ด์„œ ๋™์ผํ•œ ๊ฐ์ฒด ์ธ์Šคํ„ด์Šค๋Š” ์•„๋‹™๋‹ˆ๋‹ค.
  • TIME_OFFSET. ๋™์˜์ƒ ์‹œ์ž‘ ๋ถ€๋ถ„๋ถ€ํ„ฐ ์ง€์† ์‹œ๊ฐ„ ์˜คํ”„์…‹์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋™์˜์ƒ ํ”„๋ ˆ์ž„์ž…๋‹ˆ๋‹ค. ํƒ€์ž„์Šคํƒฌํ”„๋Š” ๋ถ€๋™์†Œ์ˆ˜์  ์ˆ˜์ด๋ฉฐ ๋‹จ์œ„๋Š” ์ดˆ์ž…๋‹ˆ๋‹ค.
  • BOUNDING_BOX ๋™์˜์ƒ ํ”„๋ ˆ์ž„์˜ ๊ฐ์ฒด์— ๋Œ€ํ•œ ๊ฒฝ๊ณ„ ์ƒ์ž์ž…๋‹ˆ๋‹ค. ๊ฒฝ๊ณ„ ์ƒ์ž ์ง€์ •์—๋Š” 2๊ฐœ ์ด์ƒ์˜ ์—ด์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
    bounding_box
    A. x_relative_min,y_relative_min
    B. x_relative_max,y_relative_min
    C. x_relative_max,y_relative_max
    D. x_relative_min,y_relative_max

    ๊ฐ ๊ผญ์ง“์ ์€ x, y ์ขŒํ‘œ ๊ฐ’์œผ๋กœ ์ง€์ •๋ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ขŒํ‘œ ๊ฐ’์€ 0~1 ๋ฒ”์œ„์˜ ์‹ค์ˆ˜์ด๋ฉฐ, 0์€ x ๋˜๋Š” y์˜ ์ตœ์†Ÿ๊ฐ’์„ ๋‚˜ํƒ€๋‚ด๊ณ , 1์€ x ๋˜๋Š” y์˜ ์ตœ๋Œ“๊ฐ’์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
    ์˜ˆ๋ฅผ ๋“ค์–ด (0,0)์€ ์™ผ์ชฝ ์ƒ๋‹จ ๋ชจ์„œ๋ฆฌ๋ฅผ, (1,1)์€ ์˜ค๋ฅธ์ชฝ ํ•˜๋‹จ ๋ชจ์„œ๋ฆฌ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ „์ฒด ์ด๋ฏธ์ง€์˜ ๊ฒฝ๊ณ„ ์ƒ์ž๋Š” (0,0,,,1,1,,) ๋˜๋Š” (0,0,1,0,1,1,0,1)๋กœ ํ‘œํ˜„๋ฉ๋‹ˆ๋‹ค.
    AutoML Object Tracking์€ ํŠน์ •ํ•œ ๊ผญ์ง“์  ์ˆœ์„œ๋ฅผ ์š”๊ตฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ง€์ • ๊ผญ์ง“์  4๊ฐœ๊ฐ€ ์ด๋ฏธ์ง€ ๋ณ€๊ณผ ํ‰ํ–‰์„ ์ด๋ฃจ๋Š” ์ง์‚ฌ๊ฐํ˜•์„ ํ˜•์„ฑํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ Vertex AI๋Š” ์ด๋Ÿฌํ•œ ์ง์‚ฌ๊ฐํ˜•์„ ํ˜•์„ฑํ•˜๋Š” ๊ผญ์ง“์ ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
    ๊ฐ์ฒด์˜ ๊ฒฝ๊ณ„ ์ƒ์ž๋Š” ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๋กœ ์ง€์ •๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    1. ์ง์‚ฌ๊ฐํ˜•์˜ ๋Œ€๊ฐ์„  ๋ฐ˜๋Œ€ ๊ผญ์ง“์ ์ผ ๊ฒฝ์šฐ x,y ์ขŒํ‘œ ์ง‘ํ•ฉ์œผ๋กœ ๊ตฌ์„ฑ๋œ ๋‘ ๊ฐœ์˜ ๊ผญ์ง“์ :
      A. x_relative_min,y_relative_min
      C. x_relative_max,y_relative_max
      ์•„๋ž˜ ์˜ˆ์‹œ์™€ ๊ฐ™์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
      x_relative_min, y_relative_min,,,x_relative_max,y_relative_max,,
    2. ๋‹ค์Œ๊ณผ ๊ฐ™์ด 4๊ฐœ์˜ ๊ผญ์ง“์ ์ด ๋ชจ๋‘ ์ง€์ •๋จ:
      x_relative_min,y_relative_min, x_relative_max,y_relative_min, x_relative_max,y_relative_max, x_relative_min,y_relative_max,
      4๊ฐœ์˜ ์ง€์ • ๊ผญ์ง“์ ์ด ์ด๋ฏธ์ง€์˜ ๋ณ€๊ณผ ํ‰ํ–‰์„ ์ด๋ฃจ๋Š” ์ง์‚ฌ๊ฐํ˜•์„ ํ˜•์„ฑํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ Vertex AI๋Š” ์ด๋Ÿฌํ•œ ์ง์‚ฌ๊ฐํ˜•์„ ํ˜•์„ฑํ•˜๋Š” ๊ผญ์ง“์ ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ ์„ธํŠธ ํŒŒ์ผ์˜ ํ–‰ ์˜ˆ์‹œ

๋‹ค์Œ ํ–‰์€ ๋ฐ์ดํ„ฐ ์„ธํŠธ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ง€์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์ด ์˜ˆ์‹œ์—์„œ๋Š” Cloud Storage์˜ ๋™์˜์ƒ ๊ฒฝ๋กœ, ๊ฐ์ฒด์˜ ๋ผ๋ฒจ, ์ถ”์ ์„ ์‹œ์ž‘ํ•  ํƒ€์ž„์˜คํ”„์…‹, ๋‘ ๊ฐœ์˜ ๋Œ€๊ฐ์„  ๊ผญ์ง“์ ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. VIDEO_URI.,LABEL,INSTANCE_ID,TIME_OFFSET,x_relative_min,y_relative_min,x_relative_max,y_relative_min,x_relative_max,y_relative_max,x_relative_min,y_relative_max

gs://folder/video1.avi,car,,12.90,0.8,0.2,,,0.9,0.3,,
gs://folder/video1.avi,bike,,12.50,0.45,0.45,,,0.55,0.55,,
์—ฌ๊ธฐ์„œ ๊ฐ ํ•ญ๋ชฉ์˜ ์˜๋ฏธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • VIDEO_URI๋Š” gs://folder/video1.avi์ž…๋‹ˆ๋‹ค.
  • LABEL์€ car์ž…๋‹ˆ๋‹ค.
  • INSTANCE_ID , (์ง€์ •๋˜์ง€ ์•Š์Œ)
  • TIME_OFFSET์€ 12.90์ž…๋‹ˆ๋‹ค.
  • x_relative_min,y_relative_min์€ 0.8,0.2์ž…๋‹ˆ๋‹ค.
  • x_relative_max,y_relative_min์€ ์ง€์ •๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • x_relative_max,y_relative_max๋Š” 0.9,0.3์ž…๋‹ˆ๋‹ค.
  • x_relative_min,y_relative_max๋Š” ์ง€์ •๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์•ž์—์„œ ์„ค๋ช…ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ๋‹ค์Œ ์˜ˆ์‹œ์™€ ๊ฐ™์ด 4๊ฐœ์˜ ๊ผญ์ง“์ ์„ ๋ชจ๋‘ ์ œ๊ณตํ•˜์—ฌ ๊ฒฝ๊ณ„ ์ƒ์ž๋ฅผ ์ง€์ •ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

gs://folder/video1.avi,car,,12.10,0.8,0.8,0.9,0.8,0.9,0.9,0.8,0.9 gs://folder/video1.avi,car,,12.90,0.4,0.8,0.5,0.8,0.5,0.9,0.4,0.9 gs://folder/video1.avi,car,,12.10,0.4,0.2,0.5,0.2,0.5,0.3,0.4,0.3

CSV ์˜ˆ์‹œ - ๋ผ๋ฒจ ์—†์Œ:

๋ผ๋ฒจ์„ ์ง€์ •ํ•˜์ง€ ์•Š๊ณ  ๋ฐ์ดํ„ฐ ํŒŒ์ผ์—์„œ ๋™์˜์ƒ์„ ์ œ๊ณตํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ Google Cloud Console์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋ธ์„ ํ•™์Šต์‹œํ‚ค๊ธฐ ์ „์— ๋ฐ์ดํ„ฐ์— ๋ผ๋ฒจ์„ ์ ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ ค๋ฉด ๋‹ค์Œ ์˜ˆ์‹œ์™€ ๊ฐ™์ด ๋™์˜์ƒ์˜ Cloud Storage URI ๋‹ค์Œ์— ์‰ผํ‘œ 11๊ฐœ๋งŒ ์ œ๊ณตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ml_use๊ฐ€ ํ• ๋‹น๋˜์ง€ ์•Š์€ ์˜ˆ์‹œ:

  gs://folder/video1.avi
  ...
  

ml_use๊ฐ€ ํ• ๋‹น๋œ ์˜ˆ์‹œ:

  TRAINING,gs://folder/video1.avi
  TEST,gs://folder/video2.avi
  ...