윈도우와 리눅스 패키지나 컨테이너 형태로 Video Effects SDK 설치하기
NVIDIA는 도커(Docker) 컨테이너를 통한 Maxine Video Effects SDK를 제공하며, 윈도우(Windows)와 리눅스(Linux) 플랫폼에서는 SDK 패키지 형태로 지원합니다.
컨테이너를 사용하면 배포와 채택 시간이 단축되어 시간과 비용이 절감되며 높은 확장성을 누릴 수 있습니다. 컨테이너와 쿠버네티스(Kubernetes)의 혼용은 강력하고 확장도 간편한 배포 전략이 되어줍니다. 또한 사전 패키지형 컨테이너의 특성상 컨테이너 내의 구체적 설치 작업에 대해 걱정할 필요가 없습니다.
이번 포스팅은 컨테이너와 윈도우에서 Maxine Video Effects SDK를 사용하는 방법을 집중적으로 다룹니다. 설치를 계속하기에 앞서 여러분의 하드웨어가 요구 사항 일체를 충족하는지 확인하세요.
NVIDIA 소프트웨어 스택의 사용 경험이 상당하고 베어메탈(bare-metal) 방식의 리눅스 시스템에 Video Effects SDK를 배포하기 원한다면 Maxine Getting Started 페이지를 참고하세요.
도커 컨테이너에서 Video Effects SDK 사용하기
고성능 Video Effects SDK와 컨테이너의 최신 AI 모델을 설치하고 활용하려면 4단계의 작업을 거칩니다.
- NVIDIA Drivers 다운로드
- 도커와 nvidia-docker를 다운로드해 GPU를 컨테이너에 노출. NVIDIA 컨테이너 설치 가이드를 참고하세요.
- NGC API Key로 NGC Registry에 로그인
- Video Effects SDK 컨테이너 가져오기
이때 NVIDIA Turing이나 NVIDIA Volta, 또는 NVIDIA Ampere Architecture 세대 데이터센터 GPU(T4, V100, A100, A10, A30)에 액세스가 필요합니다.
윈도우에 Video Effects SDK 설치하기
윈도우에 Video Effects SDK를 설치하는 프로세스는 간단합니다:
- 윈도우용 NVIDIA Graphics Driver 다운로드
- 마이크로소프트 비주얼 스튜디오 2017(Microsoft Visual Studio 2017) 이상 버전 다운로드(빌드 툴 설치 확인 필요)
- Maxine Getting Started 페이지에서 최신 Video Effects SDK 다운로드
윈도우에 배포한 Maxine Video Effects SDK의 높은 처리량과 짧은 지연시간을 누리려면 NVIDIA RTX 그래픽 카드가 필요합니다. A100 등의 데이터센터 GPU에서 Video Effects SDK를 실행하려면 리눅스 패키지를 사용하세요.
샘플 애플리케이션
Video Effects SDK는 5개의 샘플 애플리케이션과 함께 제공됩니다.
- AigsEffectApp
- BatchEffectApp
- DenoiseEffectApp
- UpscalePipelineApp
- VideoEffectsApp
이 애플리케이션에는 Video Effects SDK의 기능 일체를 실행하기 위한 샘플 코드가 포함되어 있습니다. 이러한 기능을 경험하기 위해 애플리케이션을 구축한 다음, 사전 구축된 윈도우 배시(bash) 스크립트를 사용해 실행할 수도 있습니다.
각 애플리케이션은 Video Effects SDK의 /VideoFX/share 폴더에 있는 build_samples.sh 스크립트로 구축합니다. 도커 컨테이너를 사용하는 경우 항목 폴더는 다음과 같습니다.
bash build_samples.sh’
이 스크립트는 샘플 애플리케이션을 구축하고 일부 샘플과 애플리케이션별 종속성을 설치합니다. 이 작업에는 몇 분이 소요될 수 있습니다. 구축이 완료된 뒤에는 해당 애플리케이션을 구축한 폴더에서 애플리케이션당 최소 하나의 배시 스크립트를 찾을 수 있습니다. 다음은 애플리케이션 중 하나의 세부 형식입니다.
#!/bin/sh
. ./setup_env.sh
VideoEffectsApp \
--model_dir=$_VFX_MODELS \
--in_file=$_VFX_SHARE/samples/input/input1.jpg \
--out_file=ar_1.png \
--effect=ArtifactReduction \
--mode=1 \
--show
VideoEffectsApp \
--model_dir=$_VFX_MODELS \
--in_file=$_VFX_SHARE/samples/input/input1.jpg \
--out_file=ar_0.png \
--effect=ArtifactReduction \
--mode=0 \
--show
VideoEffectsApp \
--model_dir=$_VFX_MODELS \
--in_file=$_VFX_SHARE/samples/input/input2.jpg \
--out_file=sr_0.png \
--effect=SuperRes \
--resolution=2160 \
--mode=0 \
--show
VideoEffectsApp \
--model_dir=$_VFX_MODELS \
--in_file=$_VFX_SHARE/samples/input/input2.jpg \
--out_file=sr_1.png \
--effect=SuperRes \
--resolution=2160 \
--mode=1 \
--show
다음은 VideoEffectsApp 샘플 애플리케이션에 적용되는 명령줄의 예입니다. 이하의 인수를 조정해 다양한 기능을 경험할 수 있습니다.
- —effect: 아티팩트 감소, 슈퍼 해상도, 업스케일 중 효과를 선택합니다.
- —mode: 두 가지 모드(0, 1) 간 전환을 담당합니다.
- —strength: 업스케일러의 개선 조정 배수(0, 1)를 전환합니다.
- —resolution: 선택한 미디어의 목표 해상도 입력에 사용합니다. 예를 들어 720p 미디어의 해상도를 2배로 높이려면 1440을 사용합니다.
이러한 효과를 로컬에서 실행할 때 키보드 컨트롤로 각 효과를 전환하고, 사용자의 웹캠 피드에서 효과를 실시간으로 경험할 수 있습니다. 자세한 내용은 Sample Applications Reference를 참고하세요. 이러한 효과의 연결과 관련한 정보도 함께 얻을 수 있습니다. 마지막으로 배칭(batching)과 처리량 극대화에 관심이 있다면 BatchEffectApp 샘플 애플리케이션을 확인하세요.