์ด ํ์ด์ง์์๋ Vertex AI Vision์ ์ฑ ํ๋ซํผ์์ ์ฌ์ฉํ ์ฑ์ ๋ง๋ค๊ณ ์ ๋ ฅ ์คํธ๋ฆผ, ๋ถ์์ฉ ๋ชจ๋ธ, ์คํ ๋ฆฌ์ง์ฉ ์จ์ดํ์ฐ์ค์ ๊ฐ์ ๊ตฌ์ฑ์์๋ฅผ ๊ฒฐํฉํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค.
์ฑ์ ๋น๋ํ๋ ค๋ฉด ๋ฐ์ดํฐ ์์ค, ์คํํ ๋ถ์, ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํ ๋ฐฉ๋ฒ์ ๊ณ ๋ คํด์ผ ํฉ๋๋ค. ์๋ ํฌ ์๋ ์ฑ์ ์ฌ์ฉ ์ฌ๋ก์ ๋ฐ๋ผ ๋ค์ํ ํํ๋ฅผ ๊ฐ์ง ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ์ฑ์ ๋น๋ํ๋ ๋ฐฉ๋ฒ์ ๋ชฉํ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค.
์์ํ๊ธฐ ์ ์ ์ฑ ์๊ฐ ์๋ AI ๊ด์ ์์ ์ฌ์ฉ ์ฌ๋ก์ ๋ชฉํ๋ฅผ ํ๊ฐํ๊ณ , ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ ๋ ๋ชจ๋ธ๊ณผ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ต์ข ์ฌ์ฉ์์๊ฒ ๋ฏธ์น ์ ์๋ ์ํฅ์ ๊ณ ๋ คํ์ธ์. ๊ณต์ ์ฑ์ ์ํด ์ฌ์ฉ ์ฌ๋ก๋ฅผ ํ๊ฐํ๋ ์ฒซ ๋จ๊ณ์ ๋ํด ์์ธํ ์์๋ณด์ธ์. ๋ํ Vertex AI Vision ์ฌ์ฉ์ด Google Cloud์ ์๋น์ค ์ฝ๊ด ๋๋ ์คํ๋ผ์ธ ๋ณํ, Google Cloud์ ํ์ฉ๋๋ ์ฌ์ฉ ์ ์ฑ ๊ณผ ๊ฐ์ ํตํฉ URL ์ฝ๊ด์ ์ค์ํ๋์ง ํ์ธํ์ธ์.
์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค ๋ AI ์๊ฐ ๊ธฐ์ ์ ๋ถ๊ณต์ ํ ํธ๊ฒฌ์ ๊ฐํํ๊ฑฐ๋ ๋์ ํ๊ณ ๊ธฐ๋ณธ์ ์ธ ์ธ๊ถ์ ์ํฅ์ ๋ฏธ์น ์ ์๋ค๋ ์ ์ ์ผ๋์ ๋์ธ์. ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์๋ ํ์ฌ์ ๊ฐ์น์ ๊ธฐ๋ฐํ ์ค๋ฆฌ์ ์ฑ์ฐฐ๊ณผ ๊ณ ์ํ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ํฌํจํ ํน์ ์ฌ์ฉ ์ฌ๋ก์ ๋ํ ๋ฒ์ ์ค์ฌ๊ฐ ํฌํจ๋์ด์ผ ํฉ๋๋ค. ๋ชจ๋ ๊ธฐ์ ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ๊ธฐ์ ์ ๊ตฌํํ๋ ์ง์ญ์์ AI/ML ๊ธฐ์ ์ฌ์ฉ์ ๊ท์ ํ๋ ๋ชจ๋ ๊ด๋ จ ๋ฒ๊ท๋ฅผ ๊ณ ๋ คํด์ผ ํฉ๋๋ค. ๊ณ ๊ฐ์ ํน์ ์ง์ญ์์ ์ํ๋๊ฐ ๋์ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋๋ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ๊ตฌํํ๋ ๋ฐ ํ์ํ ์ค์ฌ๋ฅผ ์ํํด์ผ ํฉ๋๋ค.
์ ์ ํ๋ฆฌ์ผ์ด์ ๋ง๋ค๊ธฐ
์คํธ๋ฆผ์ด๋ ๋ชจ๋ธ๊ณผ ๊ฐ์ ๊ตฌ์ฑ์์๋ฅผ ์ฑ์ ์ถ๊ฐํ๋ ค๋ฉด ๋จผ์ ์ฑ ์์ฒด๋ฅผ ๋ง๋ค์ด์ผ ํฉ๋๋ค. ๋ชจ๋ ์ฑ์๋ ๋ค์์ด ํฌํจ๋์ด์ผ ๋ฐฐํฌํ ์ ์์ต๋๋ค.
- ์คํธ๋ฆผ ์ ๋ ฅ ๋ ธ๋ (๋ฐ์ดํฐ ์์ค)์ ๋๋ค.
- ๋ชจ๋ธ ๋๋ ์จ์ดํ์ฐ์ค์ ๊ฐ์ ๋ค๋ฅธ ๊ตฌ์ฑ์์ ๋ ธ๋๊ฐ ํ๋ ์ด์ ์์ด์ผ ํฉ๋๋ค.
์ ๋ง์ถค ์ ํ๋ฆฌ์ผ์ด์ ๋ง๋ค๊ธฐ
์ฝ์
Google Cloud ์ฝ์์์ ์ฑ์ ๋ง๋ญ๋๋ค.
Vertex AI Vision ๋์๋ณด๋์ ์ ํ๋ฆฌ์ผ์ด์ ํญ์ ์ฝ๋๋ค.
๋ง๋ค๊ธฐ ๋ฒํผ์ ํด๋ฆญํฉ๋๋ค.
์ฑ ์ด๋ฆ์ ์ ๋ ฅํ๊ณ ์ง์ญ์ ์ ํํฉ๋๋ค. ์ง์๋๋ ์ง์ญ
๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
ํ ํ๋ฆฟ์ผ๋ก ์ ํ๋ฆฌ์ผ์ด์ ๋ง๋ค๊ธฐ
์ฝ์
Google Cloud ์ฝ์์์ ์ฑ์ ๋ง๋ญ๋๋ค.
Vertex AI Vision ๋์๋ณด๋์ ์ ํ๋ฆฌ์ผ์ด์ ํญ์ ์ฝ๋๋ค.
๋ง๋ค๊ธฐ ๋ฒํผ์ ํด๋ฆญํฉ๋๋ค.
์ฑ ์ด๋ฆ์ ์ ๋ ฅํ๊ณ ์ง์ญ์ ์ ํํฉ๋๋ค. ์ง์๋๋ ์ง์ญ
๋ง๋ค๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
์ ํ๋ฆฌ์ผ์ด์ ๋น๋ ํ์ด์ง์์ ์ ํ๋ฆฌ์ผ์ด์ ํ ํ๋ฆฟ ๋ ธ๋๋ฅผ ํด๋ฆญํฉ๋๋ค.
์ธก๋ฉด ์ค์ ํจ๋์์ ๋ชจ๋ธ ์ ํ ๋ฒํผ์ ํด๋ฆญํฉ๋๋ค.
๋๋กญ๋ค์ด ๋ฉ๋ด์์ ๋ชจ๋ธ์ ์ ํํฉ๋๋ค.
์คํธ๋ฆผ ์ ๋ ฅ ์ถ๊ฐ
์ ํ๋ฆฌ์ผ์ด์ ์๋ ๋์์ ์คํธ๋ฆผ ๋ ธ๋๊ฐ ํฌํจ๋์ด์ผ ํฉ๋๋ค. ์คํธ๋ฆผ ๋ ธ๋๋ฅผ ์ถ๊ฐํ์ง ์์ผ๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌํ ์ ์์ต๋๋ค.
์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ฐฐํฌ๋์ง ์์ ๊ฒฝ์ฐ ์คํธ๋ฆผ ์ ๋ ฅ ์ ๋ฐ์ดํธ๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ์๋์ผ๋ก ์ ์ฉ๋ฉ๋๋ค. ์ฑ์ด ์ด๋ฏธ ๋ฐฐํฌ๋ ๊ฒฝ์ฐ ๋ณ๊ฒฝ์ฌํญ์ ์ ์ฉํ๋ ค๋ฉด ์ฑ์ ๋ฐฐํฌ ํด์ ํ๊ณ ์ ๋ฐ์ดํธํด์ผ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์ฑ ์ ๋ฐ์ดํธ ์น์ ์ ์ฐธ๊ณ ํ์ธ์.
์ฝ์
Google Cloud ์ฝ์์์ ์ฑ์ ์คํธ๋ฆผ์ ์ถ๊ฐํฉ๋๋ค.
Vertex AI Vision ๋์๋ณด๋์ ์ ํ๋ฆฌ์ผ์ด์ ํญ์ ์ฝ๋๋ค.
์ฑ์ ์ฑ ๋ณด๊ธฐ๋ฅผ ํด๋ฆญํฉ๋๋ค.
๊ตฌ์ฑ์์์ ์ธก๋ฉด ๋ชฉ๋ก์์ ์ปค๋ฅํฐ ๋ชฉ๋ก์ ๋์์ ์คํธ๋ฆผ์ ์ ํํฉ๋๋ค. ์คํธ๋ฆผ ๋ ธ๋๊ฐ ์ฑ ๊ทธ๋ํ์ ์ถ๊ฐ๋๊ณ ์ธก๋ฉด ๋์์ ์คํธ๋ฆผ ๋ฉ๋ด๊ฐ ์ด๋ฆฝ๋๋ค.
๋์์ ์คํธ๋ฆผ ์ถ๊ฐ๋ฅผ ์ ํํฉ๋๋ค.
๊ธฐ์กด ์คํธ๋ฆผ์์ ์ ํ์ ์ ํํ ๊ฒฝ์ฐ ๊ธฐ์กด ์คํธ๋ฆผ์ ์ ํํ๊ณ ์คํธ๋ฆผ ์ถ๊ฐ๋ฅผ ์ ํํฉ๋๋ค.
์ ์คํธ๋ฆผ ๋ฑ๋ก์ ์ ํํ ๊ฒฝ์ฐ ์ ์คํธ๋ฆผ์ ์ด๋ฆ์ ์ถ๊ฐํ๊ณ ์คํธ๋ฆผ ์ถ๊ฐ๋ฅผ ์ ํํฉ๋๋ค.
REST
์ฑ์ ์คํธ๋ฆผ์ ์ถ๊ฐํ๋ ค๋ฉด projects.locations.applications.addStreamInput ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ POST ์์ฒญ์ ์ ์กํฉ๋๋ค.
์์ฒญ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ ์ ๋ค์์ ๋ฐ๊ฟ๋๋ค.
- PROJECT: Google Cloud ํ๋ก์ ํธ ID ๋๋ ํ๋ก์ ํธ ๋ฒํธ
- LOCATION_ID: Vertex AI Vision์ ์ฌ์ฉํ๋ ๋ฆฌ์ ์
๋๋ค. ์๋ฅผ ๋ค๋ฉด
us-central1
,europe-west4
์ ๋๋ค. ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฆฌ์ ์ ์ฐธ๊ณ ํ์ธ์. - APPLICATION_ID: ํ๊ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ID์ ๋๋ค.
- STREAM_ID: ๋์ ์คํธ๋ฆผ์ ID์ ๋๋ค.
HTTP ๋ฉ์๋ ๋ฐ URL:
POST https://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:addStreamInput
JSON ์์ฒญ ๋ณธ๋ฌธ:
{ "applicationStreamInputs": [ { "streamWithAnnotation": { "stream": "projects/PROJECT/locations/LOCATION_ID/clusters/application-cluster-0/streams/STREAM_ID" } }, { "streamWithAnnotation": { "stream": "projects/PROJECT/locations/LOCATION_ID/clusters/application-cluster-0/streams/STREAM_ID" } } ] }
์์ฒญ์ ๋ณด๋ด๋ ค๋ฉด ๋ค์ ์ต์ ์ค ํ๋๋ฅผ ์ ํํฉ๋๋ค.
curl
์์ฒญ ๋ณธ๋ฌธ์ request.json
ํ์ผ์ ์ ์ฅํ๊ณ ๋ค์ ๋ช
๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:addStreamInput"
PowerShell
์์ฒญ ๋ณธ๋ฌธ์ request.json
ํ์ผ์ ์ ์ฅํ๊ณ ๋ค์ ๋ช
๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:addStreamInput" | Select-Object -Expand Content
์ฑ๊ณต ์ํ ์ฝ๋(2xx)์ ๋น ์๋ต์ ๋ฐ๊ฒ ๋ฉ๋๋ค.
๋ ธ๋ ์ฃผ์์ด ์๋ ์คํธ๋ฆผ ์ ๋ ฅ ์ถ๊ฐ
์ ํ๋ฆฌ์ผ์ด์ ์ ๋ ฅ ์คํธ๋ฆผ์ ๋ง๋ค ๋ Vertex AI Vision API๋ฅผ ์ฌ์ฉํ์ฌ ์คํธ๋ฆผ์ ์ฃผ์์ ์ถ๊ฐํ ์ ์์ต๋๋ค.Google Cloud ์ฝ์์์ ๋ ธ๋์ ์ฃผ์์ ์ถ๊ฐํ ์๋ ์์ต๋๋ค.
์ฝ์
๋ค์ ์ํ์ ์ฌ์ฉ ๊ฐ๋ฅํ ์ฃผ์(STREAM_ANNOTATION_TYPE_ACTIVE_ZONE
๋ฐ STREAM_ANNOTATION_TYPE_CROSSING_LINE
)์ ์ ์ ์จ ๋ชจ๋ธ์ ์ถ๊ฐํฉ๋๋ค.
Vertex AI Vision ๋์๋ณด๋์ ์ ํ๋ฆฌ์ผ์ด์ ํญ์ ์ฝ๋๋ค.
๋ชฉ๋ก์์ ์ ํ๋ฆฌ์ผ์ด์ ์ด๋ฆ ์์ ์๋ ์ฑ ๋ณด๊ธฐ๋ฅผ ์ ํํฉ๋๋ค.
์ ํ๋ฆฌ์ผ์ด์ ๋น๋ ํ์ด์ง์์ ์ฃผ์์ ์ถ๊ฐํ ์คํธ๋ฆผ ์ ๋ ฅ์ด ์๋ ๋ชจ๋ธ์ ์ ํํฉ๋๋ค.
์ธก๋ฉด ๋ชจ๋ธ ์ค์ ํจ๋์์ '๊ณ ๊ธ ์ค์ ' ์น์ ์ ํผ์นฉ๋๋ค. ์น์ ์ ํผ์น ํ ํ์ฑ ์์ญ/์ ๋ง๋ค๊ธฐ ๋ฒํผ์ ํด๋ฆญํฉ๋๋ค.
์คํธ๋ฆผ ๊ฐค๋ฌ๋ฆฌ ๋ทฐ์์ ์ ๋ ฅ ์คํธ๋ฆผ์ ์ ํํ์ฌ ํ์ฑ ์์ญ ๋๋ ์ ์ ๊ทธ๋ฆฝ๋๋ค.
ํธ์ง๊ธฐ ๋ทฐ์์ ๋ค์ค ์ ์ ์ถ๊ฐ ๋๋ ๊ฐ๋จํ ๋ค๊ฐํ ์ถ๊ฐ๋ฅผ ์ ํํ์ฌ ์ฃผ์์ ์ถ๊ฐํฉ๋๋ค. ์ธก๋ฉด ํจ๋์ ์ฌ์ฉํ์ฌ ์์ญ ๋๋ ์ ์ด๋ฆ์ ๋ฐ๊พธ๊ฑฐ๋, ๊ธฐ์กด ์์ญ/์ ์ ์ญ์ ํ๊ฑฐ๋, ์ ๋ฐฉํฅ์ ์ ํํฉ๋๋ค.
REST ๋ฐ ๋ช ๋ น์ค
๋ค์ ์ฝ๋๋ ์คํธ๋ฆผ ์ฃผ์์ ์ถ๊ฐํฉ๋๋ค.
์์ฒญ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ ์ ๋ค์์ ๋ฐ๊ฟ๋๋ค.
- PROJECT: Google Cloud ํ๋ก์ ํธ ID ๋๋ ํ๋ก์ ํธ ๋ฒํธ
- LOCATION_ID: Vertex AI Vision์ ์ฌ์ฉํ๋ ๋ฆฌ์ ์
๋๋ค. ์๋ฅผ ๋ค๋ฉด
us-central1
,europe-west4
์ ๋๋ค. ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฆฌ์ ์ ์ฐธ๊ณ ํ์ธ์. - APPLICATION_ID: ํ๊ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ID์ ๋๋ค.
- STREAM_ID: ๋์ ์คํธ๋ฆผ์ ID์ ๋๋ค.
- NODE_NAME: ์ฑ ๊ทธ๋ํ์ ํ๊ฒ ๋
ธ๋ ์ด๋ฆ์
๋๋ค. ์๋ฅผ ๋ค๋ฉด
builtin-occupancy-count
์ ๋๋ค. - ANNOTATION_ID: ํ๊ฒ ์ฃผ์์ ID์ ๋๋ค.
- ANNOTATION_DISPLAYNAME: ํ๊ฒ ์ฃผ์์ ์ฌ์ฉ์ ์ง์ ํ์ ์ด๋ฆ์ ๋๋ค.
- ANNOTATION_TYPE: ์ฌ์ฉ ๊ฐ๋ฅํ ์ด๊ฑฐํ ๊ฐ ์ค ํ๋์
๋๋ค. ์ด ์ ํ์
annotation_payload
๊ฐ์ฒด(activeZone
๋๋crossingLine
)์ ์ผ์นํด์ผ ํฉ๋๋ค. ์ฌ์ฉ ๊ฐ๋ฅํ ๊ฐ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.STREAM_ANNOTATION_TYPE_UNSPECIFIED
STREAM_ANNOTATION_TYPE_ACTIVE_ZONE
STREAM_ANNOTATION_TYPE_CROSSING_LINE
normalizedVertices
: ๊ฐ ๊ผญ์ง์ ์ x, y ์ขํ ๊ฐ์ผ๋ก ์ง์ ๋ฉ๋๋ค. ์ขํ๋ ์๋ณธ ์ด๋ฏธ์ง์ ์๋์ ์ธ ์ ๊ทํ๋ float ๊ฐ [0,1] ์ ๋๋ค. 0.0์ X_MIN ๋๋ Y_MIN์ด๊ณ 1.0์ X_MAX ๋๋ Y_MAX์ ๋๋ค.
HTTP ๋ฉ์๋ ๋ฐ URL:
POST https://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:addStreamInput
JSON ์์ฒญ ๋ณธ๋ฌธ:
{ "applicationStreamInputs": [ { "streamWithAnnotation": { "stream": "projects/PROJECT/locations/LOCATION_ID/clusters/application-cluster-0/streams/STREAM_ID", "nodeAnnotations": [ { "node": "NODE_NAME", "annotations": [ { "id": "ANNOTATION_ID", "displayName": "ANNOTATION_DISPLAYNAME", "sourceStream": "projects/PROJECT/locations/LOCATION_ID/clusters/application-cluster-0/streams/STREAM_ID", "type": ANNOTATION_TYPE, "activeZone": { "normalizedVertices": { "x": 0.07434944, "y": 0.18061674 }, "normalizedVertices": { "x": 0.64684016, "y": 0.16079295 }, "normalizedVertices": { "x": 0.6047088, "y": 0.92070484 }, "normalizedVertices": { "x": 0.1251549, "y": 0.76651984 } } } ] } ] } } ] }
์์ฒญ์ ๋ณด๋ด๋ ค๋ฉด ๋ค์ ์ต์ ์ค ํ๋๋ฅผ ์ ํํฉ๋๋ค.
curl
์์ฒญ ๋ณธ๋ฌธ์ request.json
ํ์ผ์ ์ ์ฅํ๊ณ ๋ค์ ๋ช
๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:addStreamInput"
PowerShell
์์ฒญ ๋ณธ๋ฌธ์ request.json
ํ์ผ์ ์ ์ฅํ๊ณ ๋ค์ ๋ช
๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:addStreamInput" | Select-Object -Expand Content
์ฑ๊ณต ์ํ ์ฝ๋(2xx)์ ๋น ์๋ต์ ๋ฐ๊ฒ ๋ฉ๋๋ค.
์คํธ๋ฆผ ์ ๋ ฅ ์ญ์
REST
์ฑ์์ ์คํธ๋ฆผ์ ์ญ์ ํ๋ ค๋ฉด projects.locations.applications.removeStreamInput ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ POST ์์ฒญ์ ์ ์กํฉ๋๋ค.
์์ฒญ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ ์ ๋ค์์ ๋ฐ๊ฟ๋๋ค.
- PROJECT: Google Cloud ํ๋ก์ ํธ ID ๋๋ ํ๋ก์ ํธ ๋ฒํธ
- LOCATION_ID: Vertex AI Vision์ ์ฌ์ฉํ๋ ๋ฆฌ์ ์
๋๋ค. ์๋ฅผ ๋ค๋ฉด
us-central1
,europe-west4
์ ๋๋ค. ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฆฌ์ ์ ์ฐธ๊ณ ํ์ธ์. - APPLICATION_ID: ํ๊ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ID์ ๋๋ค.
- STREAM_ID: ๋์ ์คํธ๋ฆผ์ ID์ ๋๋ค.
HTTP ๋ฉ์๋ ๋ฐ URL:
POST https://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:removeStreamInput
JSON ์์ฒญ ๋ณธ๋ฌธ:
{ "targetStreamInputs": [ { "stream": "projects/PROJECT/locations/LOCATION_ID/clusters/application-cluster-0/streams/STREAM_ID" }, { "stream": "projects/PROJECT/locations/LOCATION_ID/clusters/application-cluster-0/streams/STREAM_ID" } ] }
์์ฒญ์ ๋ณด๋ด๋ ค๋ฉด ๋ค์ ์ต์ ์ค ํ๋๋ฅผ ์ ํํฉ๋๋ค.
curl
์์ฒญ ๋ณธ๋ฌธ์ request.json
ํ์ผ์ ์ ์ฅํ๊ณ ๋ค์ ๋ช
๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:removeStreamInput"
PowerShell
์์ฒญ ๋ณธ๋ฌธ์ request.json
ํ์ผ์ ์ ์ฅํ๊ณ ๋ค์ ๋ช
๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:removeStreamInput" | Select-Object -Expand Content
์ฑ๊ณต ์ํ ์ฝ๋(2xx)์ ๋น ์๋ต์ ๋ฐ๊ฒ ๋ฉ๋๋ค.
์ฌ์ ํ์ต๋ Vertex AI Vision ๋ชจ๋ธ ์ถ๊ฐ
์ฑ์ ๋ง๋ ํ ๋ชจ๋ธ์ ์ถ๊ฐํ๊ณ ์คํธ๋ฆผ, ๋ค๋ฅธ ๋ชจ๋ธ ๋๋ ๋ฏธ๋์ด ์ฐฝ๊ณ ์ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค.
๋ชจ๋ธ์๋ ์ฌ์ ํ์ต๋ ๋ชจ๋ธ๊ณผ ์ฌ์ฉ์ ํ์ต ๋ชจ๋ธ์ ๋ ๊ฐ์ง ์ ํ์ด ์์ต๋๋ค. ๋ง์ฐฌ๊ฐ์ง๋ก ์ฌ์ฉ์ ํ์ต ๋ชจ๋ธ๋ AutoML ๋๋ ์ปค์คํ ํ์ต์ ๋ ๊ฐ์ง ์ ํ์ด ์์ต๋๋ค.
- ์ฌ์ ํ์ต๋ ๋ชจ๋ธ์ ํน์ ๋ชฉํ๋ฅผ ์ํํ๊ณ ์ผ๋ฐํ๋ ๋ฐ์ดํฐ๋ก ํ์ต๋๋ฉฐ ๋ฐ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ์ฌ์ฉ์ ํ์ต AutoML ๋๋ ์ปค์คํ ํ์ต ๋ชจ๋ธ์ ์ฌ์ฉํ๋ ค๋ฉด ์ํ ๋ฐ์ดํฐ๋ฅผ ์๋ณํ๊ณ ์ ๊ณตํ ๋ค์ ๊ณ ์ ํ ์ฌ์ฉ ์ฌ๋ก์ ๋ ์ ํฉํ ๋ชจ๋ธ์ ํ์ต์์ผ์ผ ํฉ๋๋ค. ์ด๋ฌํ ๋ชจ๋ธ์ Vertex AI๋ฅผ ์ฌ์ฉํ์ฌ ํ์ต์ํต๋๋ค. Vertex AI๋ AutoML ํ์ต ๋ชจ๋ธ๊ณผ ์ปค์คํ ํ์ต ๋ชจ๋ธ์ด๋ผ๋ ๋ ๊ฐ์ง ํ์ต ์ต์ ์ ์ ๊ณตํ๋ ์ ํ์ ๋๋ค. ์์ธํ ๋ด์ฉ์ ํ์ต ๋ฐฉ๋ฒ ์ ํ์ ์ฐธ๊ณ ํ์ธ์.
๋ค์ ์๋ด์ ๋ฐ๋ผ ์ฌ์ ํ์ต๋ Vertex AI Vision ๋ชจ๋ธ์ ์ฑ ๊ทธ๋ํ์ ์ถ๊ฐํ์ธ์.
์ฝ์
Vertex AI Vision ๋์๋ณด๋์ ์ ํ๋ฆฌ์ผ์ด์ ํญ์ ์ฝ๋๋ค.
๋ชฉ๋ก์์ ์ ํ๋ฆฌ์ผ์ด์ ์ด๋ฆ ์์ ์๋ ์ฑ ๋ณด๊ธฐ๋ฅผ ์ ํํฉ๋๋ค.
์ ํ๋ฆฌ์ผ์ด์ ๋น๋ ํ์ด์ง์ AI ๋ชจ๋ธ ๋ชฉ๋ก์์ ์ถ๊ฐํ ๋ชจ๋ธ์ ์ ํํฉ๋๋ค. ๊ฐ ๋ชจ๋ธ์๋ ๊ฐ๋ณ ๊ตฌ์ฑ ์ค์ ์ด ์์ต๋๋ค.
์ด ๋ชจ๋ธ์ ์ ๋ ฅ ์์ค ๋ ธ๋์ ์ฐ๊ฒฐํ๋ ค๋ฉด ์์ค ๋ ธ๋๋ฅผ ์ ํํ๊ณ
์ถ๋ ฅ ์ถ๊ฐ๋ฅผ ์ ํํฉ๋๋ค.์ฌ์ฉ ๊ฐ๋ฅํ ๋ ธ๋ ๋ชฉ๋ก์์ ์๋ก ๋ง๋ AI ๋ชจ๋ธ ๋ ธ๋๋ฅผ ์ ํํฉ๋๋ค.
์ฌ์ฉ์ ํ์ต Vertex AI ๋ชจ๋ธ ์ถ๊ฐ
์ฑ์ ๋ง๋ ํ ๋ชจ๋ธ์ ์ถ๊ฐํ๊ณ ์คํธ๋ฆผ, ๋ค๋ฅธ ๋ชจ๋ธ ๋๋ ๋ฏธ๋์ด ์ฐฝ๊ณ ์ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค.
๋ชจ๋ธ์๋ ์ฌ์ ํ์ต๋ ๋ชจ๋ธ๊ณผ ์ฌ์ฉ์ ํ์ต ๋ชจ๋ธ์ ๋ ๊ฐ์ง ์ ํ์ด ์์ต๋๋ค. ๋ง์ฐฌ๊ฐ์ง๋ก ์ฌ์ฉ์ ํ์ต ๋ชจ๋ธ๋ AutoML ๋๋ ์ปค์คํ ํ์ต์ ๋ ๊ฐ์ง ์ ํ์ด ์์ต๋๋ค.
- ์ฌ์ ํ์ต๋ ๋ชจ๋ธ์ ํน์ ๋ชฉํ๋ฅผ ์ํํ๊ณ ์ผ๋ฐํ๋ ๋ฐ์ดํฐ๋ก ํ์ต๋๋ฉฐ ๋ฐ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ์ฌ์ฉ์ ํ์ต AutoML ๋๋ ์ปค์คํ ํ์ต ๋ชจ๋ธ์ ์ฌ์ฉํ๋ ค๋ฉด ์ํ ๋ฐ์ดํฐ๋ฅผ ์๋ณํ๊ณ ์ ๊ณตํ ๋ค์ ๊ณ ์ ํ ์ฌ์ฉ ์ฌ๋ก์ ๋ ์ ํฉํ ๋ชจ๋ธ์ ํ์ต์์ผ์ผ ํฉ๋๋ค. ์ด๋ฌํ ๋ชจ๋ธ์ Vertex AI๋ฅผ ์ฌ์ฉํ์ฌ ํ์ต์ํต๋๋ค. Vertex AI๋ AutoML ํ์ต ๋ชจ๋ธ๊ณผ ์ปค์คํ ํ์ต ๋ชจ๋ธ์ด๋ผ๋ ๋ ๊ฐ์ง ํ์ต ์ต์ ์ ์ ๊ณตํ๋ ์ ํ์ ๋๋ค. ์์ธํ ๋ด์ฉ์ ํ์ต ๋ฐฉ๋ฒ ์ ํ์ ์ฐธ๊ณ ํ์ธ์.
Vertex AI AutoML ๊ฐ์ฒด ๊ฐ์ง ์คํธ๋ฆฌ๋ฐ ๋ชจ๋ธ ์ถ๊ฐ
๋ค์ ์๋ด์ ๋ฐ๋ผ ํ์ต์ํจ Vertex AI AutoML ๊ฐ์ฒด ๊ฐ์ง ์คํธ๋ฆฌ๋ฐ ๋ชจ๋ธ์ ์ฑ ๊ทธ๋ํ์ ์ถ๊ฐํ์ธ์.
Vertex AI AutoML ๋ชจ๋ธ์ ํ์ต์ํค๋ ค๋ฉด ๋จผ์ ๊ฐ์ฒด ๊ฐ์ง ๋ฐ์ดํฐ๋ฅผ ์ค๋นํ๊ณ ๋ฐ์ดํฐ ์ธํธ๋ฅผ ๋ง๋ค์ด์ผ ํฉ๋๋ค.
Vertex AI Vision์์ ์ฌ์ฉํ ๋ชจ๋ธ ํ์ต
Vertex AI์์ ๋ํ์ ์ธ ๋ฐ์ดํฐ ๋ชจ์์ผ๋ก ๋ฐ์ดํฐ ์ธํธ๋ฅผ ๋ง๋ ํ Vertex AI Vision์์ ์ฌ์ฉํ ๋ชจ๋ธ์ ํ์ต์ํฌ ์ ์์ต๋๋ค.
์ฝ์
Google Cloud ์ฝ์์ Vertex AI ๋์๋ณด๋์์ ๋ฐ์ดํฐ ์ธํธ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
๋ชจ๋ธ์ ํ์ต์ํค๋ ๋ฐ ์ฌ์ฉํ ๋ฐ์ดํฐ ์ธํธ์ ์ด๋ฆ์ ํด๋ฆญํ์ฌ ์ธ๋ถ์ ๋ณด ํ์ด์ง๋ฅผ ์ฝ๋๋ค.
๋ฐ์ดํฐ ์ ํ์ด ์ฃผ์ ์ธํธ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ด ๋ชจ๋ธ์ ์ฌ์ฉํ ์ฃผ์ ์ธํธ๋ฅผ ์ ํํฉ๋๋ค.
์ ๋ชจ๋ธ ํ์ต์ ํด๋ฆญํฉ๋๋ค.
์ ๋ชจ๋ธ ํ์ต ํ์ด์ง์์ AutoML ์ด๋ฏธ์ง ๊ฐ์ฒด ๊ฐ์ง ๋ชจ๋ธ์ ๋ํด ๋ค์ ๋จ๊ณ๋ฅผ ์๋ฃํฉ๋๋ค.
๋ชจ๋ธ ํ์ต ๋ฐฉ๋ฒ ์น์ ์์
AutoML์ ์ ํํฉ๋๋ค.๋ชจ๋ธ์ ์ฌ์ฉํ ์์น ์ ํ ์น์ ์์
Vertex AI Vision์ ์ ํํฉ๋๋ค.๊ณ์์ ํด๋ฆญํฉ๋๋ค.
๋ชจ๋ธ ์ธ๋ถ์ ๋ณด, ํ์ต ์ต์ , ์ปดํจํ ๋ฐ ๊ฐ๊ฒฉ ์ฑ ์ ์น์ ์ ๊ฐ์ ์ ๋ ฅํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ AutoML ๋ชจ๋ธ ํ์ต (Google Cloud ์ฝ์)์ ์ฐธ๊ณ ํ์ธ์.
ํ์ต ์์์ ํด๋ฆญํฉ๋๋ค.
๋ฐ์ดํฐ์ ๊ท๋ชจ ๋ฐ ๋ณต์ก์ฑ๊ณผ ํ์ต ์์ฐ(์ง์ ํ ๊ฒฝ์ฐ)์ ๋ฐ๋ผ ๋ชจ๋ธ ํ์ต์ ๋ง์ ์๊ฐ์ด ์์๋ ์ ์์ต๋๋ค. ํญ์ ๋ซ์๋ค๊ฐ ๋์ค์ ๋ค์ ๋์์๋ ๋ฉ๋๋ค. ๋ชจ๋ธ ํ์ต์ด ์๋ฃ๋๋ฉด ์ด๋ฉ์ผ์ด ์ ์ก๋ฉ๋๋ค.
ํ์ต๋ ๋ชจ๋ธ์ ์ฑ์ ์ถ๊ฐ
๋ชจ๋ธ ํ์ต์ด ์๋ฃ๋๋ฉด Vertex AI Vision ์ฑ์ ๋ชจ๋ธ์ ์ถ๊ฐํ ์ ์์ต๋๋ค.
์ฝ์
Vertex AI Vision ๋์๋ณด๋์ ์ ํ๋ฆฌ์ผ์ด์ ํญ์ ์ฝ๋๋ค.
๋ชฉ๋ก์์ ์ ํ๋ฆฌ์ผ์ด์ ์ด๋ฆ ์์ ์๋ ์ฑ ๋ณด๊ธฐ๋ฅผ ์ ํํฉ๋๋ค.
์ ํ๋ฆฌ์ผ์ด์ ๋น๋ ํ์ด์ง์ ์ธก๋ฉด ๊ตฌ์ฑ์์ ๋ชฉ๋ก์์ Vertex AI ๋ชจ๋ธ ์ถ๊ฐ๋ฅผ ์ ํํฉ๋๋ค. ์ด ์ต์ ์ ์ ํํ๋ฉด ์ธก๋ฉด ๋ฉ๋ด๊ฐ ์ด๋ฆฝ๋๋ค.
'Vertex AI ๋ชจ๋ธ ์ถ๊ฐ' ๋ฉ๋ด์์
Vertex AI์์ ํ์ต๋ ๋ชจ๋ธ ๊ฐ์ ธ์ค๊ธฐ ์ต์ ์ ์ ํํ ์ํ๋ก ๋๊ณ ๊ธฐ์กด Vertex AI AutoML ๋ชจ๋ธ ๋ชฉ๋ก์์ ๋ชจ๋ธ์ ์ ํํฉ๋๋ค.๊ฐ์ ธ์ฌ ๋ชจ๋ธ์ ์ ํํ ํ ๋ชจ๋ธ ์ถ๊ฐ๋ฅผ ์ ํํฉ๋๋ค.
๋ชจ๋ธ ์ถ๊ฐ ๋ฒํผ์ ํด๋ฆญํ๋ฉด ๊ทธ๋ํ ๋น๋ ํ์ด์ง ์ธก๋ฉด์ ๋๊ธฐ ์ค์ธ ๋ชจ๋ธ์ด ํ์๋ฉ๋๋ค. ๋ช ์ด ํ ๋ชจ๋ธ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
Vertex AI ์ปค์คํ ๋ชจ๋ธ ์ถ๊ฐ
Vertex AI ์ปค์คํ ํ์ต ๋ชจ๋ธ์ Vertex AI Vision์ผ๋ก ๊ฐ์ ธ์ ๋ฐ์ดํฐ ๋ถ์์ ์ฌ์ฉํ ์๋ ์์ต๋๋ค. ์ด๋ฌํ ๋ง์ถค ํ์ต ๋ชจ๋ธ์๋ ๋ค์ ์์ฑ์ด ์์ด์ผ ํฉ๋๋ค.
- ๋ชจ๋ธ ์ ๋ ฅ์ ์๋ก ๋ค๋ฅธ ์ ํ๋ฆฌ์ผ์ด์ ์ธ์คํด์ค (์คํธ๋ฆผ)์์ ๊ฐ์ ธ์จ ์ด๋ฏธ์ง์ด๋ฉฐ ์์๊ฐ ์๋ชป๋ ์ ์์ผ๋ฏ๋ก ๋ชจ๋ธ์ ์คํ ์ดํธ๋ฆฌ์ค์ฌ์ผ ํฉ๋๋ค. ์ํ ์ ์ฅ ์คํธ๋ฆฌ๋ฐ ์ฒ๋ฆฌ๊ฐ ํ์ํ ๊ฒฝ์ฐ ์์ฒด ์ปจํ ์ด๋ ๋ด์ ์ํ๋ฅผ ์ ์งํด์ผ ํ ์ ์์ต๋๋ค.
- ๋ชจ๋ธ์ ์ ๋ ฅ ํฌ๊ธฐ๋ 1.5MB๋ก ์ ํ๋ฉ๋๋ค. ๋ฐ๋ผ์ Vertex AI Vision์ ์๋ณธ RGB ์ด๋ฏธ์ง๋ฅผ JPG์ ๊ฐ์ ์์ค ํ์์ผ๋ก ์์ถํด์ผ ํฉ๋๋ค.
๋ค์ ์๋ด์ ๋ฐ๋ผ ํ์ตํ ๊ธฐ์กด Vertex AI ๋ง์ถค ํ์ต ๋์์ ๋ชจ๋ธ์ ์ฑ ๊ทธ๋ํ์ ์ถ๊ฐํฉ๋๋ค.
์ปค์คํ ์ปจํ ์ด๋๋ก Vertex AI ์ปค์คํ ํ์ต ๋ชจ๋ธ์ ๋ง๋๋ ๋ฐฉ๋ฒ์ ์์ธก์ ์ปค์คํ ์ปจํ ์ด๋ ์ฌ์ฉ์ ์ฐธ๊ณ ํ์ธ์.
์ธ์คํด์ค YAML ํ์ผ ์ง์
Vertex AI ๋ง์ถค ํ์ต ๋ชจ๋ธ์ ์ถ๊ฐํ ๋๋ Cloud Storage์ ์ ์ฅ๋ ์ธ์คํด์ค YAML ํ์ผ (instances.yaml
)์ ์ง์ ํด์ผ ํฉ๋๋ค. ์ด ํ์ผ์ ๋ชจ๋ธ ์ปจํ
์ด๋์ ํ์ํ ์
๋ ฅ์ ์ง์ ํฉ๋๋ค.
Vertex AI๋ ๋ค์๊ณผ ๊ฐ์ ํ์์ผ๋ก ์์ธก ์์ฒญ์ ์ ์กํฉ๋๋ค.
{
"instances": [
<value>|<simple/nested list>|<object>,
...
]
}
์ฌ๊ธฐ์ instances.yaml
๋ ํ์ด๋ก๋์ ์คํค๋ง๋ฅผ ์ ์ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ์ปค์คํ
ํ์ต ๋ชจ๋ธ์์ ์จ๋ผ์ธ ์์ธก ๊ฐ์ ธ์ค๊ธฐ๋ฅผ ์ฐธ๊ณ ํ์ธ์.
Vertex AI Vision์ ์ ํํ ํ๋์ ์ด๋ฆ์ด ์ง์ ๋ ์์ธก ์ ๋ ฅ์ด ์๋ ์ปค์คํ ํ์ต ๋ชจ๋ธ๋ง ์ง์ํฉ๋๋ค. ์ด ์ ๋ ฅ ์ ํ์ ์ธ์ฝ๋ฉ๋ JPEG ๋ฌธ์์ด์ด์ด์ผ ํฉ๋๋ค. ์์ธก ์ ๋ ฅ์ ์คํค๋ง๋ ์ธ์คํด์ค ์คํค๋ง YAML ํ์ผ๋ก ์ง์ ํด์ผ ํฉ๋๋ค. ์ด ์คํค๋ง YAML ํ์ผ์ OpenAPI ์คํค๋ง ๊ฐ์ฒด ํ์์ด์ด์ผ ํฉ๋๋ค.
์๋ฅผ ๋ค์ด ๋ค์ ์คํค๋ง๋ image_bytes
๋ฅผ ํธ์ถํ๋ ํ๋์ ์ธ์ฝ๋ฉ๋ ์ด๋ฏธ์ง๊ฐ ํฌํจ๋ ์์ฒญ์ ์์ ํฉ๋๋ค.
properties:
image_bytes:
type: string
๋ง์ถค ๋ชจ๋ธ์ ๋ค์ ํ์์ผ๋ก ์์ธก ์ ๋ ฅ์ ์์ ํฉ๋๋ค.
{
"instances": [
{
"image_bytes" : {
"b64": "BASE64_ENCODED_IMAGE_BYTES"
}
}
]
}
๋ชจ๋ธ์ Vertex AI Vision์ผ๋ก ๊ฐ์ ธ์ค๊ธฐ ์ ์ ๋ชจ๋ธ์ด ์ด ์ ๋ ฅ์ผ๋ก ์ฌ๋ฐ๋ฅด๊ฒ ์๋ํ๋์ง ํ์ธํ์ธ์.
์์ธก YAML ํ์ผ ์ง์
Vertex AI ๋ง์ถค ํ์ต ๋ชจ๋ธ์ ์ถ๊ฐํ ๋ Cloud Storage์ ์ ์ฅ๋ ์์ธก YAML ํ์ผ (predictions.yaml
)์ ์ง์ ํ ์ ์์ต๋๋ค. ์ด ํ์ผ์ ๋ชจ๋ธ ์ปจํ
์ด๋์ ์ถ๋ ฅ์ ์ง์ ํฉ๋๋ค.
์ด ํ์ผ์ ์ ํ์ฌํญ์ด์ง๋ง Vertex AI Vision์ ๋ชจ๋ธ์ ์ถ๋ ฅ ๊ตฌ์กฐ๋ฅผ ์๋ฆฌ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์๋ฅผ ๋ค์ด ๋ค์ classification_1.0.0.yaml
ํ์ผ์ ์ด๋ฏธ์ง ๋ถ๋ฅ ๋ชจ๋ธ์ ๋ชจ๋ธ ์ถ๋ ฅ ์ ๋ณด๋ฅผ ์ค๋ช
ํฉ๋๋ค.
title: Classification
type: object
description: >
The predicted AnnotationSpecs.
properties:
ids:
type: array
description: >
The resource IDs of the AnnotationSpecs that had been identified.
items:
type: integer
format: int64
enum: [0] # As values of this enum all AnnotationSpec IDs the Model
# was trained on will be populated.
displayNames:
type: array
description: >
The display names of the AnnotationSpecs that had been identified,
order matches the IDs.
items:
type: string
enum: [""] # As values of this enum all AnnotationSpec display_names
# the Model was trained on will be populated.
confidences:
type: array
description: >
The Model's confidences in correctness of the predicted IDs, higher
value means higher confidence. Order matches the Ids.
items:
type: number
format: float
minimum: 0.0
maximum: 1.0
์ปค์คํ ํ์ต ๋ชจ๋ธ ์ถ๊ฐ
๋ค์ ์ํ์ ์ฌ์ฉํ์ฌ Vertex AI ์ปค์คํ ํ์ต ๋ชจ๋ธ์ ์ฑ์ ์ถ๊ฐํ์ธ์.
์ฝ์
Vertex AI Vision ๋์๋ณด๋์ ์ ํ๋ฆฌ์ผ์ด์ ํญ์ ์ฝ๋๋ค.
๋ชฉ๋ก์์ ์ ํ๋ฆฌ์ผ์ด์ ์ด๋ฆ ์์ ์๋ ์ฑ ๋ณด๊ธฐ๋ฅผ ์ ํํฉ๋๋ค.
์ ํ๋ฆฌ์ผ์ด์ ๋น๋ ํ์ด์ง์ ์ธก๋ฉด ๊ตฌ์ฑ์์ ๋ชฉ๋ก์์ Vertex AI ๋ชจ๋ธ ์ถ๊ฐ๋ฅผ ์ ํํฉ๋๋ค. ์ด ์ต์ ์ ์ ํํ๋ฉด ์ธก๋ฉด ๋ฉ๋ด๊ฐ ์ด๋ฆฝ๋๋ค.
'Vertex AI ๋ชจ๋ธ ์ถ๊ฐ' ๋ฉ๋ด์์
Vertex AI์์ ํ์ต๋ ๋ชจ๋ธ ๊ฐ์ ธ์ค๊ธฐ ์ต์ ์ ์ ํํ ์ํ๋ก ๋๊ณ ๊ธฐ์กด Vertex AI AutoML ๋ชจ๋ธ ๋ชฉ๋ก์์ ๋ชจ๋ธ์ ์ ํํฉ๋๋ค.๋ชจ๋ธ ์ด๋ฆ์ ์ ๋ ฅํฉ๋๋ค.
์์ธก ๋ฐ ์ค๋ช ์์ฒญ์ ์ฌ์ฉ๋๋ ๋จ์ผ ์ธ์คํด์ค์ ํ์์ ์ ์ํ๋ Cloud Storage์ ์ธ์คํด์ค YAML ํ์ผ์ ์ง์ ํฉ๋๋ค.
์ ํ์ฌํญ: ๋จ์ผ ์์ธก ๋๋ ์ค๋ช ์ ํ์์ ์ ์ํ๋ Cloud Storage์ ์์ธก ์คํค๋ง YAML ํ์ผ์ ์ง์ ํฉ๋๋ค.
๋ชจ๋ธ ์ด๋ฆ, ์ธ์คํด์ค, ์์ธก ์ ๋ณด๋ฅผ ์ ๊ณตํ ํ ๋ชจ๋ธ ์ถ๊ฐ๋ฅผ ์ ํํฉ๋๋ค.
๋ชจ๋ธ ์ถ๊ฐ ๋ฒํผ์ ํด๋ฆญํ๋ฉด ๊ทธ๋ํ ๋น๋ ํ์ด์ง ์ธก๋ฉด์ ๋๊ธฐ ์ค์ธ ๋ชจ๋ธ์ด ํ์๋ฉ๋๋ค. ๋ช ์ด ํ ๋ชจ๋ธ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
(์ ํ์ฌํญ) ์ ํ๋ฆฌ์ผ์ด์ ๋ฉํ๋ฐ์ดํฐ ์ฒจ๋ถ
์ด๋ฏธ์ง ๋ฐ์ดํธ ์ธ์๋ attach_application_metadata
๋ฅผ ์ค์ ํ์ฌ Vertex AI Vision ์ฑ ํ๋ซํผ์ ์ปค์คํ
์ปจํ
์ด๋๋ก ์ ์กํ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ํฌํจํ๋๋ก ์์ฒญํ ์ ์์ต๋๋ค.
๋ฉํ๋ฐ์ดํฐ์๋ ๋ค์ ์คํค๋ง๊ฐ ์์ต๋๋ค.
'appPlatformMetadata': {
'application': STRING;
'instanceId': STRING;
'node': STRING;
'processor': STRING;
}
(์ ํ์ฌํญ) ๋์ ๊ตฌ์ฑ Pub/Sub ์ฃผ์ ์ถ๊ฐ
Vertex ๋ง์ถค ์ฐ์ฐ์๊ฐ Vertex ๋ง์ถค ์ปจํ
์ด๋์ ๋์์ ํ๋ ์์ ์ ์กํ๋ ํ๋ ์ ์๋๋ฅผ ๋์ ์ผ๋ก ์ ์ดํ๋ ค๋ฉด Pub/Sub ์ฃผ์ ๋ฅผ ๋ง๋ค๋ฉด ๋ฉ๋๋ค. ๋
ธ๋ ์ค์ ์ Dynamic Configuration
์น์
์ ์ถ๊ฐํฉ๋๋ค.
Pub/Sub ์ฃผ์ ๊ฐ ๊ตฌ์ฑ๋ ๊ฒฝ์ฐ ์ด๊ธฐ ํ๋ ์ ์๋๋ 0์ ๋๋ค. ๋์์ ์ฒ๋ฆฌ ์ค์ ๋ค์ ํ์์ผ๋ก Pub/Sub ์ฃผ์ ์ Pub/Sub ๋ฉ์์ง๋ฅผ ์ค์๊ฐ์ผ๋ก ์ ์กํ์ฌ ํ๋ ์ ์๋๋ฅผ ๋ณ๊ฒฝํ ์ ์์ต๋๋ค.
{
"stream_id": "input-stream-id",
"fps": 5,
}
stream_id
ํ๋๋ ์ ํ๋ฆฌ์ผ์ด์
์ ์
๋ ฅ ์คํธ๋ฆผ ID์ ์ผ์นํด์ผ ํฉ๋๋ค.
์๋น์ค ๊ณ์ ๋ฐ ๊ถํ
์ปค์คํ
์ปจํ
์ด๋์ ๊ธฐ๋ณธ ์๋น์ค ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด๊ฐ Vertex AI Vision ์ฑ ํ๋ซํผ์ Google ์์ ์๋น์ค ๊ณ์ ์ผ๋ก ๊ตฌ์ฑ๋์์ต๋๋ค.
์ปจํ
์ด๋์์ ๋ค๋ฅธ Google Cloud์๋น์ค์ ์ก์ธ์คํ๋ ค๋ฉด ๋ค์ ์ฌ์ฉ์์๊ฒ ์ ์ ํ ๊ถํ์ ๋ถ์ฌํ์ธ์.
service-<var>PROJECT_NUMBER</var>@gcp-sa-visionai.iam.gserviceaccount.com
(์ ํ์ฌํญ) Cloud Run ํจ์ ๋ฐ Pub/Sub๋ก ์ด๋ฒคํธ ์๋ฆผ ๋ชจ๋ธ๋ง
Vertex AI Vision์์ ๋ชจ๋ธ์ ์นด๋ฉ๋ผ์ ๊ฐ์ ๊ธฐ๊ธฐ์์ ๋ฏธ๋์ด ๋ฐ์ดํฐ๋ฅผ ์์ ํ๊ณ , ๋ฐ์ดํฐ์ ๋ํด AI ์์ธก์ ์คํํ๊ณ , ์ฃผ์์ ์ง์์ ์ผ๋ก ์์ฑํฉ๋๋ค. ์ฒ๋ฆฌ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฏธ๋์ด ์จ์ดํ์ฐ์ค๋ BigQuery์ ๊ฐ์ ๋ฐ์ดํฐ ๋์ ('๋ฐ์ดํฐ ์ฑํฌ')์ผ๋ก ์ ์กํ์ฌ ์ถ๊ฐ ๋ถ์ ์์ ์ ์ํํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ํ์ง๋ง ์ผ๋ถ ์ฃผ์์ ๋ค๋ฅด๊ฒ ์ฒ๋ฆฌํด์ผ ํ๊ฑฐ๋ ์ฃผ์ ์๊ตฌ์ฌํญ์ด ์๊ฐ์ ๋ฏผ๊ฐํ ๊ฒฝ์ฐ๋ ์์ ์ ์์ต๋๋ค. Cloud Run Functions ๋ฐ Pub/Sub์์ ํตํฉ์ ํตํด ์ด๋ฌํ ์๊ตฌ์ฌํญ์ ํด๊ฒฐํ ์ ์์ต๋๋ค.
์ง์๋๋ ๋ชจ๋ธ
๋ค์ ๋ชจ๋ธ์ Cloud Run Functions ์ด๋ฒคํธ ์์ฑ ๋ฐ Pub/Sub ์ด๋ฒคํธ ์๋ฆผ ํตํฉ์ ์ ๊ณตํฉ๋๋ค.
- ์ธ์/์ฐจ๋ ์ ๋ถ์ ๋ชจ๋ธ
- Vertex AI ์ปค์คํ ํ์ต ๋ชจ๋ธ
๋ชจ๋ธ ์ถ๋ ฅ์ ์ฒ๋ฆฌํ๋๋ก Cloud Run ํจ์ ๊ตฌ์ฑ
์ด๋ฒคํธ ๊ธฐ๋ฐ ์๋ฆผ์ ํธ๋ฆฌ๊ฑฐํ๋ ค๋ฉด ๋จผ์ ๋ชจ๋ธ ์ถ๋ ฅ์ ์ฒ๋ฆฌํ๊ณ ์ด๋ฒคํธ๋ฅผ ์์ฑํ๋๋ก Cloud Run Functions๋ฅผ ์ค์ ํด์ผ ํฉ๋๋ค.
Cloud Run ํจ์๋ ๋ชจ๋ธ์ ์ฐ๊ฒฐ๋๊ณ ํ์ฒ๋ฆฌ ์์
์ผ๋ก ์ถ๋ ฅ์ ์์ ํฉ๋๋ค. Cloud Run ํจ์๋ AppPlatformCloudFunctionResponse
๋ฅผ ๋ฐํํด์ผ ํฉ๋๋ค. ์ด๋ฒคํธ(appplatformeventbody
)๋ ๋ค์ ๋จ๊ณ์์ ๊ตฌ์ฑํ๋ Pub/Sub ์ฃผ์ ๋ก ์ ์ก๋ฉ๋๋ค.
์ํ Cloud Run ํจ์๋ฅผ ๋ณด๋ ค๋ฉด Cloud Functions ๋ฐ Pub/Sub๋ก ๋ชจ๋ธ ์ด๋ฒคํธ ์๋ฆผ ์ฌ์ฉ ์ค์ ์ ์ฐธ๊ณ ํ์ธ์.
๋ค์ ์๋ด์ ๋ฐ๋ผ ๋ชจ๋ธ ์ถ๋ ฅ ์คํธ๋ฆผ์ Cloud Run ํจ์๋ก ์ ์กํ์ธ์.
์ฝ์
Vertex AI Vision ๋์๋ณด๋์ ์ ํ๋ฆฌ์ผ์ด์ ํญ์ ์ฝ๋๋ค.
๋ชฉ๋ก์์ ์ ํ๋ฆฌ์ผ์ด์ ์ด๋ฆ ์์ ์๋
์ฑ ๋ณด๊ธฐ๋ฅผ ์ ํํฉ๋๋ค.์ง์๋๋ ๋ชจ๋ธ์ ํด๋ฆญํ์ฌ ๋ชจ๋ธ ์ธ๋ถ์ ๋ณด ์ธก๋ฉด ํจ๋์ ์ฝ๋๋ค.
์ด๋ฒคํธ ์๋ฆผ ์น์ ์ ํ์ฒ๋ฆฌ ๋ชฉ๋ก์์ ๊ธฐ์กด Cloud Run ํจ์๋ฅผ ์ ํํ๊ฑฐ๋ ์ ํจ์๋ฅผ ๋ง๋ญ๋๋ค.
Pub/Sub๋ก ๋ชจ๋ธ ์ด๋ฒคํธ ์๋ฆผ ์ฌ์ฉ ์ค์
๋ชจ๋ธ ์ถ๋ ฅ์ ์ฒ๋ฆฌํ๊ณ ์ด๋ฒคํธ๋ฅผ ์์ฑํ๋๋ก Cloud Run ํจ์๋ฅผ ์ค์ ํ ํ Pub/Sub๋ก ์ด๋ฒคํธ ์๋ฆผ์ ์ค์ ํ ์ ์์ต๋๋ค. ์ฃผ์ ์์ ๋ฉ์์ง๋ฅผ ์ฝ์ผ๋ ค๋ฉด Pub/Sub ๊ตฌ๋ ์ ์ ํํ๊ณ ๋ง๋ค์ด์ผ ํฉ๋๋ค.
์ฝ์
Vertex AI Vision ๋์๋ณด๋์ ์ ํ๋ฆฌ์ผ์ด์ ํญ์ ์ฝ๋๋ค.
๋ชฉ๋ก์์ ์ ํ๋ฆฌ์ผ์ด์ ์ด๋ฆ ์์ ์๋
์ฑ ๋ณด๊ธฐ๋ฅผ ์ ํํฉ๋๋ค.์ง์๋๋ ๋ชจ๋ธ์ ํด๋ฆญํ์ฌ ๋ชจ๋ธ ์ธ๋ถ์ ๋ณด ์ธก๋ฉด ํจ๋์ ์ฝ๋๋ค.
์ด๋ฒคํธ ์๋ฆผ ์น์ ์์ ์ด๋ฒคํธ ์๋ฆผ ์ค์ ์ ์ ํํฉ๋๋ค.
์ด๋ฆฌ๋ ์ด๋ฒคํธ ์๋ฆผ์ ์ํ Pub/Sub ์ค์ ์ต์ ์ฐฝ์์ ๊ธฐ์กด Pub/Sub ์ฃผ์ ๋ฅผ ์ ํํ๊ฑฐ๋ ์ ์ฃผ์ ๋ฅผ ๋ง๋ญ๋๋ค.
๋น๋ ํ๋์์ ๋์ผํ ์ ํ์ ์ด๋ฒคํธ์ ๋ํ ์๋ฆผ์ ๋ณด๋ผ ์ ์๋ ๋น๋ ๊ฐ์ ์ด ๋จ์๋ก ์ค์ ํฉ๋๋ค.
์ค์ ์ ํด๋ฆญํฉ๋๋ค.
๋ชจ๋ธ ์ถ๋ ฅ์ ๋ค์ด์คํธ๋ฆผ ๋ ธ๋์ ์ฐ๊ฒฐ
๋ชจ๋ธ ๋ ธ๋๋ฅผ ๋ง๋ ํ์๋ ์ถ๋ ฅ์ ๋ค๋ฅธ ๋ ธ๋์ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค.
์ฝ์
Vertex AI Vision ๋์๋ณด๋์ ์ ํ๋ฆฌ์ผ์ด์ ํญ์ ์ฝ๋๋ค.
๋ชฉ๋ก์์ ์ ํ๋ฆฌ์ผ์ด์ ์ด๋ฆ ์์ ์๋ ์ฑ ๋ณด๊ธฐ๋ฅผ ์ ํํฉ๋๋ค.
์ ํ๋ฆฌ์ผ์ด์ ๊ทธ๋ํ ๋น๋์์ ๋ฐ์ดํฐ๋ฅผ ์ถ๋ ฅํ๋ ๋ชจ๋ธ ๋ ธ๋ (์: Occupancy Count ๋ชจ๋ธ ๋ ธ๋)๋ฅผ ํด๋ฆญํฉ๋๋ค.
์ธก๋ฉด ์ค์ ํจ๋์์ ์ถ๋ ฅ ์ถ๊ฐ ๋ฒํผ์ ํด๋ฆญํฉ๋๋ค.
์ ์ถ๋ ฅ ์ถ๊ฐ๋ฅผ ์ ํํ๊ณ ์ถ๊ฐํ ์ ์ถ๋ ฅ ๋ ธ๋๋ฅผ ์ ํํ๊ฑฐ๋ ๊ธฐ์กด ์ฌ์ฉ ๊ฐ๋ฅํ ๋ ธ๋๋ฅผ ์ ํํ์ฌ ์ถ๋ ฅ์ ๋ณด๋ ๋๋ค.
์ถ๋ ฅ์ ๋ฐ์ดํฐ ๋์์ผ๋ก ์ฐ๊ฒฐ
๋ฐ์ดํฐ ์์ง ์คํธ๋ฆผ์ ๋ง๋ค๊ณ ์ฒ๋ฆฌ ๋ ธ๋๋ฅผ ์ฑ์ ์ถ๊ฐํ ํ์๋ ์ฒ๋ฆฌ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ์์น๋ฅผ ์ ํํด์ผ ํฉ๋๋ค. ์ด ๋ฐ์ดํฐ ๋์์ ์คํธ๋ฆผ ๋ฐ์ดํฐ๋ฅผ ์์ฑํ์ง ์๊ณ ์คํธ๋ฆผ ๋ฐ์ดํฐ๋ฅผ ์๋ฝํ๋ ์ฑ ๊ทธ๋ํ์ ์๋ํฌ์ธํธ์ ๋๋ค. ์ ํํ๋ ๋์์ ์ฑ ์ถ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ์์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค.

์ฑ ์ถ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ๋ค์ ๋ฐ์ดํฐ ๋์์ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค.
Vision Warehouse: ๋ณด๊ณ ์ฟผ๋ฆฌํ ์ ์๋ ์๋ณธ ๋๋ ๋ถ์๋ ๋์์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํฉ๋๋ค.
์ฑ ์ถ๋ ฅ ๋ฐ์ดํฐ๋ฅผ Vision Warehouse๋ก ์ ์กํ๋ ๋ฐฉ๋ฒ์ ๊ดํ ์์ธํ ๋ด์ฉ์ ๋ฐ์ดํฐ๋ฅผ ์จ์ดํ์ฐ์ค์ ์ฐ๊ฒฐํ๊ณ ์ ์ฅํ๊ธฐ๋ฅผ ์ฐธ๊ณ ํ์ธ์.
BigQuery: BigQuery์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ์ฌ ์คํ๋ผ์ธ ๋ถ์ ๊ธฐ๋ฅ์ ์ฌ์ฉํฉ๋๋ค.
์ฑ ์ถ๋ ฅ ๋ฐ์ดํฐ๋ฅผ BigQuery๋ก ์ ์กํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์์ธํ ๋ด์ฉ์ BigQuery์ ๋ฐ์ดํฐ ์ฐ๊ฒฐ ๋ฐ ์ ์ฅ์ ์ฐธ๊ณ ํ์ธ์.
๋ผ์ด๋ธ ์คํธ๋ฆผ ๋ฐ์ดํฐ: ์ค์๊ฐ ๋ถ์์ ๋ฐ๋ผ ์กฐ์น๋ฅผ ์ทจํ๊ธฐ ์ํด ๋ ์ธ๋ถ์ ์ธ ์ ์ด๊ฐ ํ์ํ ๊ฒฝ์ฐ ์ฑ์์ ๋ผ์ด๋ธ ์ถ๋ ฅ์ ์์ ํ ์ ์์ต๋๋ค.
์ฑ ์ถ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ์ง์ ์คํธ๋ฆฌ๋ฐํ๋ ๋ฐฉ๋ฒ์ ๊ดํ ์์ธํ ๋ด์ฉ์ ๋ผ์ด๋ธ ์คํธ๋ฆผ ์ถ๋ ฅ ์ฌ์ฉ ์ค์ ์ ์ฐธ๊ณ ํ์ธ์.
์ฑ ์ ๋ฐ์ดํธ
๋ฐฐํฌ๋์ง ์์ ์ฑ
๊ตฌ์ฑ์์ ๋ ธ๋ ์ถ๊ฐ ๋๋ ์ญ์ ์ ๊ฐ์ด ์ฑ์ ์์ ํฉ๋๋ค. Vertex AI Vision์์ ๋ณ๊ฒฝ์ฌํญ์ ์๋์ผ๋ก ์ ์ฅํฉ๋๋ค.
๋ค์ ๋จ๊ณ
- ์ ํ๋ฆฌ์ผ์ด์ ๋ฐฐํฌ์์ ๋ฐ์ดํฐ๋ฅผ ์์งํ๊ณ ๋ถ์ํ๋๋ก ์ฑ์ ๋ฐฐํฌํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด์ธ์.
- ์คํธ๋ฆผ ๋ง๋ค๊ธฐ ๋ฐ ๊ด๋ฆฌ์์ ์ฑ์ ์ ๋ ฅ ์คํธ๋ฆผ์์ ๋ฐ์ดํฐ ์์ง์ ์์ํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด์ธ์.
- ์ ํ๋ฆฌ์ผ์ด์ ๊ด๋ฆฌ์์ ์ฑ์ ๋์ดํ๊ณ ๋ฐฐํฌ๋ ์ฑ์ ์ธ์คํด์ค๋ฅผ ๋ณด๋ ๋ฐฉ๋ฒ์ ์์๋ณด์ธ์.
- ์คํธ๋ฆผ ๋ฐ์ดํฐ ์ฝ๊ธฐ์์ ์์ง ์คํธ๋ฆผ ๋๋ ๋ถ์๋ ๋ชจ๋ธ ์ถ๋ ฅ ๋ฐ์ดํฐ์์ ์ฑ ์ ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ์ฝ๋ ๋ฐฉ๋ฒ์ ์์๋ณด์ธ์.