AI

์œˆ๋„์šฐ CVAT ์„ค์น˜๋ถ€ํ„ฐ Auto Labeling๊นŒ์ง€!

kaizen_bh 2024. 12. 8. 21:06

 

์ด๋ฒˆ์—๋Š” ๋Œ€ํ‘œ์ ์ธ ๋ผ๋ฒจ๋ง ํˆด์ธ CVAT์˜ ์„ค์น˜์™€ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•, ๊ทธ๋ฆฌ๊ณ  ๋ชจ๋ธ์„ ๋ฐฐํฌํ•˜์—ฌ Object Detection, Pose Estimation์„ ์˜คํ†  ๋ผ๋ฒจ๋งํ•˜๋Š” ๋ถ€๋ถ„๊นŒ์ง€ ๋‹ค๋ค„๋ณด๊ณ ์ž ํ•œ๋‹ค

์ง์ ‘ PC์— ๋‹ค์‹œ ์„ค์น˜ํ•ด๋ณด๋ฉด์„œ ๊ธ€์„ ์ž‘์„ฑํ•ด๋ณด์•˜๋‹ค

 

๋ฌผ๋ก  ๊ณต์‹ ๋ฌธ์„œ์—๋Š” ์„ค์น˜ ๋ฐฉ๋ฒ•, ๋ผ๋ฒจ๋ง ๊ฐ€์ด๋“œ, ๋ชจ๋ธ ๋ฐฐํฌํ•˜๊ณ  ์˜คํ†  ๋ผ๋ฒจ๋ง๊นŒ์ง€ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•๋“ค์ด ๋‹ค ๋‚˜์™€์žˆ์ง€๋งŒ... ๊ฐ€์ด๋“œ์—์„œ ํ‘œ๋ฅ˜ํ•˜์ง€ ์•Š๊ณ  ๊ธ€ ํ•˜๋‚˜๋งŒ ๋ณด๊ณ  ๋น ๋ฅด๊ฒŒ ์…‹์—…ํ•ด์„œ ๋ผ๋ฒจ๋ง ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ๋” ๊ฐ€์ด๋“œ๋ฅผ ์ž‘์„ฑํ•ด๋ณด์ž๋Š” ๋ชฉ์ ์œผ๋กœ ํ•ด๋‹น ๊ธ€์„ ์ •๋ฆฌํ•ด๋ณธ๋‹ค

 

๊ทธ๋ž˜๋„ ์„ค์น˜ ๊ฐ€์ด๋“œ ๋จผ์ € ์˜ฌ๋ ค๋ด…๋‹ˆ๋‹ค. 

https://docs.cvat.ai/docs/administration/basics/installation/#windows-10

 

Installation Guide

A CVAT installation guide for different operating systems.

docs.cvat.ai

 

 

 


 

 

 

1. CVAT ์„ค์น˜ (WSL ๊ธฐ๋ฐ˜)

 

1-1. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ฌ์ „ ์„ค์น˜

CVAT์„ ์„ค์น˜ํ•˜๊ธฐ ์ „์—, WSL๊ณผ ๋„์ปค๊ฐ€ ๋จผ์ € ํ•„์š”ํ•˜๋‹ค

 

WSL ์„ค์น˜

WSL ์„ค์น˜ํ•˜๋Š” ๋ถ€๋ถ„์€ ์ด์ „ Xavier NX ์…‹์—… ๋‚ด์šฉ์„ ๊ฐ€์ ธ์™”๋‹ค

์œˆ๋„์šฐ ํ™˜๊ฒฝ์—์„œ ๋””๋ฐ”์ด์Šค ์…‹ํŒ…์„ ์ง„ํ–‰ํ–ˆ๊ธฐ์— WSL2๋ฅผ ์‚ฌ์šฉํ•˜์˜€๋‹ค
์ด์ „์—๋Š” ๋งŽ์€ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์„ค์ •์— ๋“ค์–ด๊ฐ€์„œ ์ฒดํฌํ•˜๋Š” ๋“ฑ ๋ณต์žกํ•˜๋˜ WSL ์…‹ํŒ…์ด ๊ต‰์žฅํžˆ ๊ฐ„๋‹จํ•˜๊ณ  ํŽธ๋ฆฌํ•ด์กŒ๋‹ค. 

๋ช…๋ น ํ”„๋กฌํ”„ํŠธ์—์„œ wsl --list --online ์„ ์‹คํ–‰ํ•˜๊ณ  wsl.exe --install Ubuntu-22.04 ์ด๋ ‡๊ฒŒ ์‹คํ–‰ํ•˜๋ฉด ์œˆ๋„์šฐ์—์„œ ์šฐ๋ถ„ํˆฌ ํ™˜๊ฒฝ์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ์…‹ํŒ…ํ•  ์ˆ˜ ์žˆ๋‹ค

 

 

๋„์ปค ์„ค์น˜

๊ฐ€์ด๋“œ๋Œ€๋กœ exeํŒŒ์ผ๋กœ ์œˆ๋„์šฐ์— ์„ค์น˜ํ•˜๋Š” ๋„์ปค ๋ฐ์Šคํฌํ†ฑ์„ ์„ค์น˜ํ•ด๋„ ์ข‹๋‹ค.

ํ•˜์ง€๋งŒ ๊ฐœ์ธ์ ์œผ๋กœ ๋ช…๋ น์–ด ์ž…๋ ฅ์œผ๋กœ ์„ค์น˜๊ฐ€ ๋” ์ต์ˆ™ํ•ด์„œ ํ•„์š”ํ•œ ๋ช…๋ น์–ด๋“ค๋งŒ ์ •๋ฆฌํ•ด๋ณด์•˜๋‹ค

 

์ตœ์‹  ๋ฒ„์ ผ์œผ๋กœ ๋„์ปค ์„ค์น˜

# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

 

sudo ์—†์ด ๋„์ปค ๋ช…๋ น์–ด ์‚ฌ์šฉํ•˜๋„๋ก ์‚ฌ์šฉ์ž ๊ถŒํ•œ ๋ถ€์—ฌ. ์•„๋ž˜ ๋ช…๋ น์–ด ์‹คํ–‰ํ•˜๊ณ  WSL์„ ๊ป๋‹ค ๋‹ค์‹œ ์ผœ๋ฉด ์ž˜ ์ ์šฉ๋œ๋‹ค

sudo groupadd docker

sudo usermod -aG docker $USER

 

 


1-2. CVAT ์„ค์น˜

 

 

CVAT ๊นƒํ—ˆ๋ธŒ ์†Œ์Šค๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค

git clone https://github.com/cvat-ai/cvat
cd cvat

 

 

CVAT์— ํ•„์š”ํ•œ ์ด๋ฏธ์ง€๋“ค์„ ๋นŒ๋“œํ•œ๋‹ค

docker compose up -d

 

 

๋นŒ๋“œ ์ „ IP๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด localhost๋กœ CVAT IP๊ฐ€ ์„ค์ •๋œ๋‹ค. localhost:8080.๋กœ ์ ‘์†๊ฐ€๋Šฅํ•˜๋‹ค

 

 

PC์˜ IP๋ฅผ ์ง€์ •ํ•˜๊ณ  ์„œ๋ฒ„๋ฅผ ๋‚ด๋ ธ๋‹ค๊ฐ€ ๋‹ค์‹œ ์˜ฌ๋ฆฌ๋ฉด localhost๊ฐ€ ์•„๋‹Œ ์ง€์ •ํ•œ IP:8080 ์œผ๋กœ CVAT ์›น ํŽ˜์ด์ง€ ์ ‘์†์ด ๋œ๋‹ค

export CVAT_HOST=<your computer ip>

docker compose down
docker compose up -d

 

 

 

์›น์— ์ ‘์†ํ•ด์„œ ๊ณ„์ •์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์ง€๋งŒ ๋ช…๋ น์–ด๋กœ ๊ณ„์ • ์ƒ์„ฑ ๊ฐ€๋Šฅํ•˜๋‹ค

sudo docker exec -it cvat_server bash -ic 'python3 ~/manage.py createsuperuser'

 

์•„๋ž˜ ์‚ฌ์ง„์ฒ˜๋Ÿผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š”๋ฐ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ 1234๋กœ ์„ค์ •ํ–ˆ๋”๋‹ˆ ๋„ˆ๋ฌด ์งง๋‹ค๊ณ  ๊ฒฝ๊ณ ๊ฐ€ ๋œจ์ง€๋งŒ ๊ทธ๋ž˜๋„ ์ƒ์„ฑํ•  ์ˆ˜๋Š” ์žˆ๋‹ค 

 

 

๋กœ๊ทธ์ธํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ™”๋ฉด์ด ๋œฌ๋‹ค. 

 

 

 

 


 

 

2. CVAT ๋ชจ๋ธ ๋ฐฐํฌ

 

CVAT์— ๋ชจ๋ธ์„ ๋ฐฐํฌํ•˜์—ฌ ์˜คํ† ๋ผ๋ฒจ๋ง์„ ์‚ฌ์šฉํ•˜๋Š” ํŠœํˆ๋ฆฌ์–ผ์€ ์•„๋ž˜์˜ ๊ณต์‹ ๋ฌธ์„œ ๊ฐ€์ด๋“œ๋ฅผ ์ฐธ๊ณ ํ•œ๋‹ค

 

https://docs.cvat.ai/docs/administration/advanced/installation_automatic_annotation/

 

Semi-automatic and Automatic Annotation

Information about the installation of components needed for semi-automatic and automatic annotation.

docs.cvat.ai

 

 

https://docs.cvat.ai/docs/manual/advanced/serverless-tutorial/

 

Serverless tutorial

Introduction Leveraging the power of computers to solve daily routine problems, fix mistakes, and find information has become second nature. It is therefore natural to use computing power in annotating datasets. There are multiple publicly available DL mod

docs.cvat.ai

 

 

2-1. nuclio ์„ค์น˜

CVAT์— ํ•™์Šต๋œ ๋ชจ๋ธ์„ ๋ฐฐํฌํ•˜์—ฌ ์˜คํ†  ๋ผ๋ฒจ๋ง์„ ์‚ฌ์šฉํ•˜๋Š”๋ฐ nuclio๋ผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค

์•„๋ฌด ๋ฒ„์ „์ด๋‚˜ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ, ๊นƒ ํด๋ก ์„ ํ†ตํ•ด ๊ฐ€์ ธ์˜จ CVAT ์†Œ์Šค์— ๋งž๋Š” ๋ฒ„์ ผ์„ ์„ค์น˜ํ•ด์•ผ ํ•œ๋‹ค

ํ•„์š”ํ•œ ๋ฒ„์ ผ์€ CVAT ํด๋”์˜ cvat/components/serverless/docker-compose.serverless.yml ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค

 

์•„๋ž˜ ์ด๋ฏธ์ง€์ฒ˜๋Ÿผ ํ™•์ธํ•ด๋ณด๋ฉด 1.13.0 ๋ฒ„์ ผ์ด ํ•„์š”ํ•˜๋‹ค

https://github.com/nuclio/nuclio/releases ์—์„œ ๋งž๋Š” ๋ฒ„์ ผ์˜ ํŒŒ์ผ์„ ๋‹ค์šด๋ฐ›์„ ์ˆ˜ ์žˆ์ง€๋งŒ ํŒŒ์ผ๋งŒ ํ™•์ธํ•˜๊ณ  ์•„๋ž˜์˜ wget ๋ช…๋ น์–ด๋กœ ๋‹ค์šด๋ฐ›๋Š” ๊ฒƒ์ด ๋” ํŽธํ•˜๋‹ค

 

๋ฆด๋ฆฌ์ฆˆ ๋…ธํŠธ๋ฅผ ๋“ค์–ด๊ฐ€๋ณด๋ฉด ์ด๋ ‡๊ฒŒ ๋ฒ„์ ผ, ํ™˜๊ฒฝ๋ณ„ ํŒŒ์ผ๋“ค์ด ์žˆ๋‹ค

 

 

 

ํ•„์š”ํ•œ ๋ฒ„์ ผ์ด nuctl-1.13.0-linux-amd64 ์ž„์„ ํ™•์ธํ–ˆ๋‹ค๋ฉด ์•„๋ž˜ ๋ช…๋ น์–ด๋กœ CVAT ํด๋”์— ๋ฐ”๋กœ ๋‹ค์šด๋กœ๋“œ ๊ฐ€๋Šฅํ•˜๋‹ค

wget https://github.com/nuclio/nuclio/releases/download/<version>/nuctl-<version>-linux-amd64

 

 

 

ํŒŒ์ผ์„ CVAT ํด๋”์— ๋‹ค์šด๋ฐ›์•˜๋‹ค๋ฉด ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•œ๋‹ค

ํ•ด๋‹น ๋ช…๋ น์–ด๋“ค์€ ๋‹ค์šด๋กœ๋“œํ•œ nuctl ์‹คํ–‰ ํŒŒ์ผ์— ์‹คํ–‰ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๊ณ  ์‹ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ์ƒ์„ฑํ•˜์—ฌ nuctl์„ ์‹œ์Šคํ…œ ๊ฒฝ๋กœ์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค์ •ํ•œ๋‹ค

sudo chmod +x nuctl-<version>-linux-amd64
sudo ln -sf $(pwd)/nuctl-<version>-linux-amd64 /usr/local/bin/nuctl

 

 

์ •์ƒ์ ์œผ๋กœ ๋™์ž‘ ์‹œ nuctl --help ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ ๊ฒฐ๊ณผ๊ฐ€ ์ถœ๋ ฅ๋œ๋‹ค

lee@DESKTOP-UQ5OHLV:~/cvat$ nuctl --help
Nuclio command-line interface

Usage:
  nuctl [command]

Available Commands:
  beta        A beta version of nuctl as a Nuclio api cli client
  build       Build a function
  completion  Generate the autocompletion script for the specified shell
  create      Create resources
  delete      Delete resources
  deploy      Build and deploy a function, or deploy from an existing image
  export      Export functions or projects
  get         Display resource information
  help        Help about any command
  import      Import functions or projects
  invoke      Invoke a function
  parse       Parse report
  update      Update resources
  version     Display the version number of the nuctl CLI

Flags:
      --concurrency int     Max number of parallel patches. The default value is equal to the number of CPUs. (default 12)
  -h, --help                help for nuctl
  -k, --kubeconfig string   Path to a Kubernetes configuration file (admin.conf)
  -n, --namespace string    Namespace
      --platform string     Platform identifier - "kube", "local", or "auto" (default "auto")
  -v, --verbose             Verbose output

Use "nuctl [command] --help" for more information about a command.

 

 

 

 

 

๋‹ค์Œ์œผ๋กœ ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋ฉด Nuclio ํ”Œ๋žซํผ์„ Docker ์ปจํ…Œ์ด๋„ˆ๋กœ ๋นŒ๋“œํ•˜๊ณ  ๋ฐฐํฌํ•˜๊ณ  CVAT์—์„œ ํ•ด๋‹น ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™”ํ•œ๋‹ค. 

์ด๋ฏธ์ง€ ๋นŒ๋“œ์— ์‹œ๊ฐ„์ด ์ข€ ๊ฑธ๋ฆฐ๋‹ค.. 

docker compose -f docker-compose.yml -f docker-compose.dev.yml -f components/serverless/docker-compose.serverless.yml up -d --build

 

 

 

CVAT ์›นํŽ˜์ด์ง€๋ฅผ ์ƒˆ๋กœ๊ณ ์นจํ•˜๋ฉด ์ด์ „์— ์—†๋˜ Models ์นดํ…Œ๊ณ ๋ฆฌ๊ฐ€ ์ƒ์„ฑ๋˜์—ˆ๋‹ค 

 

 

๋ฐฐํฌํ•œ ๋ชจ๋ธ์€ nuclio ์‚ฌ์ดํŠธ ์ฃผ์†Œ, localhost:8070 ์—์„œ๋„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ์•„์ง์€ ์ƒ์„ฑํ•œ ํ”„๋กœ์ ํŠธ์™€ ๋ฐฐํฌํ•œ ๋ชจ๋ธ์ด ์—†์–ด์„œ default๋งŒ ์กด์žฌํ•œ๋‹ค

 

 

 

nuctl get functions ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๋ฐฐํฌํ•œ ๋ชจ๋ธ์„ ํ™•์ธํ•  ์ˆ˜ ์—†๋‹ค. ์•„์ง์€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์•„๋ฌด ๊ฒƒ๋„ ๋‚˜์˜ค์ง€ ์•Š๋Š”๋‹ค

nuctl get functions
>> No functions found

 

 

 


2-2. YoloV7 ๋ฐฐํฌ

CVAT์—์„œ๋Š” ์—ฌ๋Ÿฌ ๋ชจ๋ธ๋“ค์„ ์ง€์›ํ•˜๋Š”๋ฐ ๊ทธ ์ค‘ CVAT์ด ์ œ๊ณตํ•˜๋Š” ์ƒ˜ํ”Œ ๋ชจ๋ธ, Yolov7์„ ๋ฐฐํฌํ•˜์—ฌ ์‚ฌ์šฉํ•ด๋ณด๊ฒ ๋‹ค

์ด๋ฏธ ์ƒ˜ํ”Œ๋“ค์€ nuclio๋กœ CVAT์— ๋งž๊ฒŒ ๋‹ค ๋งŒ๋“ค์–ด์ ธ ์žˆ์œผ๋ฏ€๋กœ ๋ช…๋ น์–ด๋งŒ ์‹คํ–‰ํ•˜์—ฌ ์ด๋ฏธ์ง€ ๋นŒ๋“œ ๋ฐ  ๋ฐฐํฌ ๊ฐ€๋Šฅํ•˜๋‹ค

ํ•ด๋‹น ์ƒ˜ํ”Œ์€ COCO ๋ฐ์ดํ„ฐ์…‹์œผ๋กœ ํ•™์Šต๋œ ๊ธฐ๋ณธ ๋ชจ๋ธ์„ ๋ชจ๋ธ๋กœ ์‚ฌ์šฉํ•œ๋‹ค

 

์•„๋ž˜๋Š” yolov7 CVAT ์ƒ˜ํ”Œ ์†Œ์Šค๋“ค์ด๋‹ค

https://github.com/cvat-ai/cvat/tree/develop/serverless/onnx/WongKinYiu/yolov7/nuclio

 

cvat/serverless/onnx/WongKinYiu/yolov7/nuclio at develop · cvat-ai/cvat

Annotate better with CVAT, the industry-leading data engine for machine learning. Used and trusted by teams at any scale, for data of any scale. - cvat-ai/cvat

github.com

 

๋ฐฐํฌํ•˜๊ธฐ ์ „์— ์ž ๊น!

ํƒ์ง€ํ•œ ๋ฐ”์šด๋”ฉ ๋ฐ•์Šค์˜ confidence ๊ฐ’์„ ํ•„ํ„ฐ๋งํ•˜๋Š” ๊ธฐ์ค€๊ฐ’์ธ threshold๋Š” main.py์—์„œ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. 

์ƒ˜ํ”Œ์—์„œ๋Š” 0.5๊ฐ€ ๊ธฐ๋ณธ์œผ๋กœ ์„ค์ •๋˜์–ด ์žˆ๋‹ค.

๋งŒ์•ฝ ์›ํ•˜๋Š” ๊ฐ’์„ ์ง€์ •ํ•˜์—ฌ ๋ผ๋ฒจ๋งํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ๋ฐฐํฌ ์ „์— ์ˆ˜์ •ํ•ด์•ผํ•œ๋‹ค

 

 

CVAT์˜ serverless ํด๋”์—์„œ ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ๋ชจ๋ธ ์ด๋ฏธ์ง€๋ฅผ ๋นŒ๋“œ ๋ฐ ์‹คํ–‰ํ•œ๋‹ค

./deploy_cpu.sh ./onnx/WongKinYiu/yolov7/nuclio/

 

 

์‹คํ–‰ ํ›„ ์•„๋ž˜์ฒ˜๋Ÿผ ์ถœ๋ ฅ๋˜๊ณ  ๋๋‚˜๋ฉฐ ๋ฐฐํฌ๋œ ๋ชจ๋ธ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค

nuctl get functions ์‹คํ–‰ ์‹œ์—๋„ ๋™์ผํ•œ ์ถœ๋ ฅ์ด ๋‚˜์˜จ๋‹ค

 

 

 

CVAT ์›นํŽ˜์ด์ง€๋ฅผ ๋ณด๋ฉด ์ด์ „์— ๋น„์–ด์žˆ๋˜ Models์— YOLO v7 ์ด ์ƒ๊ฒผ๋‹ค

 

 

nuclio ์‚ฌ์ดํŠธ์—๋Š” cvat ์ด๋ผ๋Š” ์ƒˆ๋กœ์šด ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๋ชจ๋ธ์„ ๋ฐฐํฌํ•˜์—ฌ running ์ƒํƒœ์ž„์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค

 

 

 

 


 

 

๊ทธ๋Ÿผ ์ด์ œ CVAT์— ์˜ฌ๋ฆฐ ๋ชจ๋ธ๋กœ ์˜คํ†  ๋ผ๋ฒจ๋ง์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•ด๋ณด๊ฒ ๋‹ค

 

CVAT ํŽ˜์ด์ง€์—์„œ ์•„๋ž˜๋ฅผ ํด๋ฆญํ•˜์—ฌ ์ƒˆ๋กœ์šด ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ ๋‹ค

 

 

Person_Labeling์ด๋ผ๋Š” ์ด๋ฆ„์˜ ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋ ค ํ•œ๋‹ค

์–ด๋–ค ํด๋ž˜์Šค๋ฅผ ๋ผ๋ฒจ๋งํ•  ๊ฒƒ์ธ์ง€ ์ง์ ‘ ์ •ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋ชจ๋ธ์ด ๊ฐ€์ง„ ํด๋ž˜์Šค์—์„œ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋‹ค

 

 

๋ฐฐํฌ๋˜์–ด ์žˆ๋Š” ๋ชจ๋ธ์„ ์„ ํƒํ•˜๋ฉด COCO๋กœ ํ•™์Šต๋œ ๋ชจ๋ธ์˜ 80๊ฐœ ํด๋ž˜์Šค ์ค‘ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋‹ค.

์—ฌ๊ธฐ์„œ person์„ ์„ ํƒ ํ›„ Submit & Open์„ ๋ˆŒ๋Ÿฌ ์ƒˆ๋กœ์šด ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ ๋‹ค

 

 

๋‹ค์Œ์€ ํ”„๋กœ์ ํŠธ์—์„œ ์ƒˆ๋กœ์šด task๋ฅผ ์ƒ์„ฑํ•œ๋‹ค

 

 

ํƒœ์Šคํฌ๋ฅผ ๋งŒ๋“ค๋ฉด์„œ ๋ผ๋ฒจ๋งํ•  ์ด๋ฏธ์ง€๋ฅผ ์—…๋กœ๋“œํ•œ๋‹ค.

์—ฌ๊ธฐ์„œ ์ผ๋ถ€ ์ด๋ฏธ์ง€ ์—…๋กœ๋“œ๋ฅผ ๋น ๋œจ๋ฆฌ๋ฉด ์ค‘๊ฐ„์— ์ถ”๊ฐ€ ์—…๋กœ๋“œ๊ฐ€ ๋ถˆ๊ฐ€ํ•˜๋ฏ€๋กœ ์ƒˆ๋กœ์šด ํƒœ์Šคํฌ๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•  ์ˆ˜๋„ ์žˆ๋‹ค

์‚ฌ์šฉํ•œ ์ด๋ฏธ์ง€๋Š” ๋ฌด๋ฃŒ ์ด๋ฏธ์ง€ ์‚ฌ์ดํŠธ์ธ ํ”ฝ์‚ฌ๋ฒ ์ด์—์„œ ๊ฐ€์ ธ์™”๋‹ค

 

 

 

Image quality๋Š” ๊ธฐ๋ณธ 70%์ธ๋ฐ 100%์œผ๋กœ ์ˆ˜์ •ํ•˜๊ณ  ์ƒ์„ฑํ•œ๋‹ค

 

 

์ด์ œ ํ”„๋กœ์ ํŠธ์— ๋“ค์–ด๊ฐ€๋ณด๋ฉด ์•„๋ž˜์ฒ˜๋Ÿผ ์ƒˆ๋กœ์šด ํƒœ์Šคํฌ๊ฐ€ ์ƒ์„ฑ๋˜์—ˆ๋‹ค. Open์„ ๋ˆŒ๋Ÿฌ ๋“ค์–ด๊ฐ„๋‹ค

 

ํƒœ์Šคํฌ์— ๋“ค์–ด๊ฐ€๋ฉด ๋˜ Jobs ๊ฐ€ ์žˆ๋Š”๋ฐ Job #1์„ ๋ˆ„๋ฅธ๋‹ค

 

 

์ด์ œ ์ด๋ ‡๊ฒŒ ๋ผ๋ฒจ๋ง ์ž‘์—… ํ™˜๊ฒฝ์ด ๋‚˜์˜จ๋‹ค!!

 

์™ผ์ชฝ์˜ ๋งˆ์ˆ ๋ด‰ ๋งˆํฌ๋ฅผ ๋ˆ„๋ฅด๊ณ  Detectors๋ฅผ ๋ˆ„๋ฅด๊ณ  Model์„ ํ™•์ธํ•ด๋ณด๋ฉด ๋ฐฐํฌํ•œ YOLO v7 ๋ชจ๋ธ์ด ์žˆ๋‹ค. 

๋ชจ๋ธ ์„ค์ • ํ›„ Annotate๋ฅผ ๋”ฑ ๋ˆ„๋ฅด๋ฉด....!

 

 

์•„๋ž˜์ฒ˜๋Ÿผ ์•ผ๋ฌด์ง€๊ฒŒ ์˜คํ†  ๋ผ๋ฒจ๋ง์„ ํ•ด์ค€๋‹ค

 

 

๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํƒœ์Šคํฌ ํ™”๋ฉด์—์„œ Actions ์ค‘ Automatic annotation ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ์—…๋กœ๋“œํ•œ ์ „์ฒด ์ด๋ฏธ์ง€๋ฅผ ๋ฐฐํฌํ•œ ๋ชจ๋ธ๋กœ ํ•œ๋ฒˆ์— ๋ผ๋ฒจ๋งํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค

 

 

 

 

 

 


2-3. YoloV8 ๋ฐฐํฌ

์ตœ๊ทผ ์ •๋ง ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” YoloV8 ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๊ฐ€์ด๋“œ์™€ ์˜ˆ์ œ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ์ง์ ‘ ์ƒ˜ํ”Œ์„ ๋งŒ๋“ค์–ด์•ผ ํ•˜๋Š”๋ฐ ์ด๋ฏธ ๋งŒ๋“ค์–ด์ ธ ์žˆ๋Š” ์ƒ˜ํ”Œ์ด ์žˆ์–ด์„œ ์•„๋ž˜ ๊นƒํ—™์„ ์ด์šฉํ•ด ๋ฐฐํฌํ•ด๋ณด๊ฒ ๋‹ค

 

https://github.com/kurkurzz/custom-yolov8-auto-annotation-cvat-blueprint

 

GitHub - kurkurzz/custom-yolov8-auto-annotation-cvat-blueprint: Integrate custom YOLOv8 model into CVAT for automatic annotation

Integrate custom YOLOv8 model into CVAT for automatic annotation blueprint. - kurkurzz/custom-yolov8-auto-annotation-cvat-blueprint

github.com

 

 

๊นƒํ—ˆ๋ธŒ ์†Œ์Šค๋ฅผ ๋‹ค์šด๋ฐ›๋Š”๋‹ค

git clone https://github.com/kurkurzz/custom-yolov8-auto-annotation-cvat-blueprint.git

 

 

ํŒŒ์ผ ๊ตฌ์„ฑ์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค. 

 

 

ํ•ด๋‹น ์ƒ˜ํ”Œ์€ ์ผ๋ถ€ ๋‚ด์šฉ์„ ์ˆ˜์ •ํ•ด์•ผ ํ•˜๋ฏ€๋กœ ๋ฐ”๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค.

 

 

threshold๋Š” ํŒŒ์ผ ์ค‘ main.py์—์„œ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋‹ค

https://github.com/kurkurzz/custom-yolov8-auto-annotation-cvat-blueprint/blob/master/main.py

 

 

function.yaml ํŒŒ์ผ ๋‚ด์šฉ ์ค‘ spec ๋ถ€๋ถ„์— ์‚ฌ์šฉํ•  ๋ชจ๋ธ์— ๋งž๋Š” ํด๋ž˜์Šค๋ฅผ ์„ค์ •ํ•ด์•ผ ํ•œ๋‹ค

 

https://github.com/cvat-ai/cvat/blob/develop/serverless/onnx/WongKinYiu/yolov7/nuclio/function.yaml

 

cvat/serverless/onnx/WongKinYiu/yolov7/nuclio/function.yaml at develop · cvat-ai/cvat

Annotate better with CVAT, the industry-leading data engine for machine learning. Used and trusted by teams at any scale, for data of any scale. - cvat-ai/cvat

github.com

 

yolov7์— ์žˆ๋Š” ํด๋ž˜์Šค ๋ถ€๋ถ„์„ ๊ฐ€์ ธ์™€์„œ ๋ถ™์—ฌ๋„ฃ์—ˆ๋‹ค

COCO๋กœ ํ•™์Šต๋œ ๊ธฐ๋ณธ ๋ชจ๋ธ์ด ์•„๋‹Œ ์ปค์Šคํ…€ ๋ชจ๋ธ์ด๋ผ๋ฉด ์•„๋ž˜์˜ ํ˜•์‹์— ๋งž๊ฒŒ ํด๋ž˜์Šค๋ฅผ ์ž‘์„ฑํ•ด์ฃผ๋ฉด ๋œ๋‹ค

 

 

CVAT ํด๋”์—์„œ ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•œ๋‹ค. ๋นŒ๋“œ์— ์‹œ๊ฐ„์ด ๊ฝค ๊ฑธ๋ฆฐ๋‹ค... 

./serverless/deploy_cpu.sh ./custom-yolov8-auto-annotation-cvat-blueprint/

 

๋นŒ๋“œ ํ›„ ๋ฐฐํฌ๋œ ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋Ÿผ ์ด์ œ CVAT์—์„œ ์ œ๋Œ€๋กœ ๋™์ž‘ํ•˜๋Š”์ง€ ํ™•์ธํ•ด๋ณด์ž

 

 

 

Nuclio ์‚ฌ์ดํŠธ์— ์ถ”๊ฐ€ ์™„๋ฃŒ! ์ •์ƒ์ ์œผ๋กœ Running ์ค‘!

 

 

๋ชจ๋ธ์— custom-model-yolov8 ์ถ”๊ฐ€ ์™„๋ฃŒ!

 

 

๋ผ๋ฒจ๋ง ํŽ˜์ด์ง€์—์„œ๋„ ์ถ”๊ฐ€ ์™„๋ฃŒ! ๊ทธ๋Ÿผ ๋ผ๋ฒจ๋ง ๊ฒฐ๊ณผ๋Š”...?

 

 

 

 

์—ญ์‹œ ๋ผ๋ฒจ๋ง์„ ์ž˜ ํ•˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค!! 

 

 

 

 

 

 


2-4. MMPose ๋ฐฐํฌ

๋งˆ์ง€๋ง‰์€ Pose Estimation ๋ชจ๋ธ์„ ๋ฐฐํฌํ•˜๋ ค ํ•œ๋‹ค

Yolov8-Pose ๋ชจ๋ธ์€ ์ƒ˜ํ”Œ์„ ์ฐพ์ง€ ๋ชปํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ง์ ‘ ์ƒ˜ํ”Œ์„ ๋งŒ๋“ค์–ด์•ผ ํ•˜๋Š”๋ฐ ๋‹คํ–‰ํžˆ CVAT์—์„œ๋Š” MMPose ๋ชจ๋ธ์„ ์ง€์›ํ•œ๋‹ค

์ด๋ฏธ ์ƒ˜ํ”Œ๋“ค์ด ๋งŒ๋“ค์–ด์ ธ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉ๋ฒ•๋„ ๊ฐ„๋‹จํ•˜๋‹ค. Yolov7๊ณผ ๋™์ผํ•˜๋‹ค

 

์•„๋ž˜๋Š” MMPose CVAT ์ƒ˜ํ”Œ์ด๋‹ค

https://github.com/cvat-ai/cvat/tree/develop/serverless/pytorch/mmpose/hrnet32/nuclio

 

cvat/serverless/pytorch/mmpose/hrnet32/nuclio at develop · cvat-ai/cvat

Annotate better with CVAT, the industry-leading data engine for machine learning. Used and trusted by teams at any scale, for data of any scale. - cvat-ai/cvat

github.com

 

 

 

์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ๋ชจ๋ธ ์ด๋ฏธ์ง€ ๋นŒ๋“œ ๋ฐ ์‹คํ–‰ํ•œ๋‹ค. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์‹œ๊ฐ„์ด ์ข€ ๊ฑธ๋ฆฐ๋‹ค..

./serverless/deploy_cpu.sh ./serverless/pytorch/mmpose/hrnet32/nuclio/

 

์ •์ƒ์ ์œผ๋กœ ๋นŒ๋“œ ์™„๋ฃŒ!

 

 


 

์ด๋ฒˆ์—๋Š” Pose Estimation์ด๋ฏ€๋กœ ์ด์ „์— ๋งŒ๋“  ํ”„๋กœ์ ํŠธ์— ์Šค์ผˆ๋ ˆํ†ค ๋ผ๋ฒจ์„ ์ถ”๊ฐ€ํ•ด๋ณด๊ฒ ๋‹ค

 

Person_Labeling ํ”„๋กœ์ ํŠธ์— From model์„ ๋‹ค์‹œ ๋ˆŒ๋Ÿฌ๋ณด๋ฉด..

 

์•„๋ž˜์ฒ˜๋Ÿผ Human pose estimation์ด ์ƒˆ๋กญ๊ฒŒ ์ถ”๊ฐ€๋˜์–ด ์žˆ๋‹ค. 

 

 

๋ชจ๋ธ์„ ์„ ํƒํ•˜๋ฉด 4๊ฐœ ์Šค์ผˆ๋ ˆํ†ค์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋‹ค. ์‚ฌ๋žŒ์„ ์Šค์ผˆ๋ ˆํ†ค ๋ผ๋ฒจ๋งํ•˜๊ณ  ์‹ถ์œผ๋ฏ€๋กœ body๋ฅผ ์„ ํƒํ•˜๊ณ  Done ๋ˆ„๋ฅธ๋‹ค

 

๋ผ๋ฒจ๋ง ์ž‘์—…, Job์œผ๋กœ ๋„˜์–ด๊ฐ€๋ณด๋ฉด ์ด๋ ‡๊ฒŒ ์˜คํ†  ๋ผ๋ฒจ๋ง ๊ธฐ๋Šฅ์ด ํ™œ์„ฑํ™”๋œ๋‹ค

Annotate๋ฅผ ๋ˆ„๋ฅด๋ฉด...!

 

 

 

 

์•„๋ž˜์™€ ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฌผ์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค. ๋ผ๋ฒจ๋ง์„ ์ž˜ ํ•˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค

 

 

 

 

 

 


 

 

 

 

 

 

์ง€๊ธˆ๊นŒ์ง€ CVAT์„ ์œˆ๋„์šฐ ํ™˜๊ฒฝ์—์„œ ์„ค์น˜ํ•˜๊ณ  ๋ชจ๋ธ์„ ๋ฐฐํฌํ•˜์—ฌ ์˜คํ†  ๋ผ๋ฒจ๋ง์„ ํ•˜๋Š” ๊ณผ์ •์„ ์‚ดํŽด๋ณด์•˜๋‹ค

์˜คํ†  ๋ผ๋ฒจ๋ง์œผ๋กœ ์‚ฌ๋žŒ์„ ๋Œ€์ƒ์œผ๋กœ Object Detection๊ณผ Pose Estimation๋งŒ ํ•ด๋ดค์œผ๋‚˜ CVAT์€ SAM ๋ชจ๋ธ์„ ๋ฐฐํฌํ•˜์—ฌ Segmentation๋„ ํ•˜๋Š” ์ƒ˜ํ”Œ์„ ์ง€์›ํ•œ๋‹ค

 

CVAT์—์„œ SAM์„ ํ†ตํ•ด Segmentation ๋ผ๋ฒจ๋งํ•˜๋Š” ๋‚ด์šฉ์€ ์•„๋ž˜ ๋ธ”๋กœ๊ทธ๊ธ€์— ์ž˜ ์„ค๋ช…๋˜์–ด ์žˆ๋‹ค

https://developnote-blog.tistory.com/198

 

[Vision] Click ํ•œ ๋ฒˆ์— Segmentation?! - CVAT์— SAM ์ ์šฉ

Click ํ•œ ๋ฒˆ์— Segmentation?! Vision ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ CVAT์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. CVAT์„ ํ†ตํ•ด ์ด๋ฏธ์ง€๋ฅผ Labeling ์ž‘์—…์„ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. CVAT์„ ํ†ตํ•ด Auto Labeling ์ž‘์—…๋„ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ 100% ์›ํ•˜

developnote-blog.tistory.com

 

 

์…‹ํŒ…์ด ๋‹ค์†Œ ๋ณต์žกํ•  ์ˆ˜๋„ ์žˆ๋Š” CVAT์ด์ง€๋งŒ ์ต์ˆ™ํ•ด์ง€๋ฉด ์—ฌ๋Ÿฌ ์‚ฌ์šฉ์ž๋“ค์ด CVAT์— ์ ‘์†ํ•˜์—ฌ ๊ฐ๊ฐ์˜ ํƒœ์Šคํฌ๋ฅผ ๋ถ„๋‹ดํ•˜๊ณ  ์ž‘์—…ํ•  ์ˆ˜ ์žˆ๋Š” ์ข‹์€ ํˆด์ด๋‹ค. 

๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ชจ๋ธ ๋ฐฐํฌ๋ฅผ ํ†ตํ•œ ์˜คํ†  ๋ผ๋ฒจ๋ง ๊ธฐ๋Šฅ๊นŒ์ง€ ์žˆ์œผ๋ฏ€๋กœ ์ปดํ“จํ„ฐ ๋น„์ „์ชฝ์—์„œ ์ผํ•˜๋‹ค๋ณด๋ฉด ํ•œ๋ฒˆ ์ฏค์€ ํ•˜๊ฒŒ ๋˜๋Š” ๋ผ๋ฒจ๋ง.. ์ด๋Ÿฐ ํˆด์„ ์ž˜ ํ™œ์šฉํ•˜๋Š” ๊ฒƒ์ด ํฐ ๋„์›€์ด ๋  ๊ฒƒ์ด๋ผ ์ƒ๊ฐํ•œ๋‹ค