설치환경

  • OS: Ubuntu-22.04 LTS
  • CPU: Intel(R) Core(TM) i7-1355U
  • RAM: 16G
  • 날짜: 2024.05.07.

CVAT 설치 및 실행

docker 및 docker compose 를 사전 설치 후 진행

git에서 CVAT 내려받기

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

기본 server 버전 실행

# 서버 실행
docker compose up -d
 
# 서버 다운
docker compose down

>> 서버 실행 후 localhost:8080 으로 접속

+full


SAM 모델 탑재

설치된 CVAT에 serverless 기반의 deep-learning based model 을 추가하여 자동 어노테이션 기능을 사용할 수 있음

SAM(Segment Anything Model)은 Meta에서 개발한 semantic segmentation 사전 학습 모델

추가 모델은 nuclio 기능을 통해 제공됨

nuclio 다운로드

CVAT가 설치된 디렉토리의 components/serverless/docker-compose.serverless.yml파일에 작성된 버전과 동일한 버전으로 다운로드

https://github.com/nuclio/nuclio/releases 에서 알맞은 버전을 찾아 다운로드

다운로드 경로에서 아래 명령어를 실행하여 nuctl을 사용가능하게함

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

SAM 빌드 및 탑재


(Optional) Nvidia Container Toolkit 설치

apt repository에서 설치

curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
  && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
    sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
    sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit

컨테이너 설정 및 도커 재시작

sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker

설치확인

docker run --rm --gpus all nvidia/cuda:11.0.3-base-ubuntu20.04 nvidia-smi

Nuclio 상태 확인

SAM 모델이 정상 준비 되었는지 확인함

nuctl get functions
# 아래와 같이 ready 상태가 되어 있어야함
>>
NAMESPACE | NAME                           | PROJECT | STATE | REPLICAS | NODE PORT 
nuclio    | pth-facebookresearch-sam-vit-h | cvat    | ready | 1/1      | 32769   

+ (Optional) 추가로 사용할 수 있는 모델은 serverless 폴더에서 확인할 수 있음

# ex)
./serverless/deploy_cpu.sh serverless/openvino/dextr
./serverless/deploy_cpu.sh serverless/openvino/omz/public/yolo-v3-tf

모델이 탑재된 CVAT 실행

메인 CVAT와 nuclio로 연동된 모델을 실행

CVAT가 설치된 디렉토리에서 아래 명령어를 통해 실행

# 서버 실행
docker compose -f docker-compose.yml -f components/serverless/docker-compose.serverless.yml up -d
# 서버 다운
docker compose -f docker-compose.yml -f components/serverless/docker-compose.serverless.yml down

모델 동작 확인

  • localhost:8070에서 nuclio 기능 상태를 확인할 수 있음
  • localhost:8080에서 CVAT 상단 메뉴의 model에서 사용가능한 모델을 확인할 수 있음
  • CVAT 작업에서 SAM 기능이 정상작동하는지 확인
  • SAM 활용 어노테이션

+full


배포 및 외부접속

IP 설정

CVAT_HOST 변수를 통해 외부접속 ip를 설정

# 서버 다운
docker compose -f docker-compose.yml -f components/serverless/docker-compose.serverless.yml down
 
# IP 세팅
export CVAT_HOST={ip_address}
 
# 서버 실행
docker compose -f docker-compose.yml -f components/serverless/docker-compose.serverless.yml up -d

관리자 계정 생성

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

참고


CVATAnnotationTools