구성 관리, 데이터 처리, 학습 루프 관리, 모듈 등록, 고성능 연산 지원 등 여러 기능을 통해 MMDetection, MMSegmentation, MMPose 등 OpenMMLab의 다양한 프로젝트의 기반을 이루고 있음, mmcv는 모델 구조, 데이터셋, 학습 스케줄 등 다양한 실험 설정을 YAML 또는 Python 스크립트 형태의 구성 파일로 관리할 수 있게 해줍니다. 이미지와 비디오 데이터를 읽고 쓰거나 전처리하는 다양한 함수를 제공이미지 읽기/쓰기, 색상 공간 변환, 리사이즈, 회전, 크롭 등의 기능이 포함PyTorch 기반의 학습 루프를 보다 체계적으로 관리할 수 있도록 러너(Runner)와 Hook 메커니즘을 제공학습 과정 중 다양한 이벤트(예: 에포크 시작/종료, 배치 처리 등)에 대해 커스텀 동작을 삽입할 수 있습니다.여러 신경망 레이어 및 모델 구성요소들을 구현해두어, mmcv의 Registry 시스템은 모델, 데이터셋, 손실 함수 등 다양한 모듈들을 문자열 키로 등록하고 관리할 수 있게 해줌 코드의 모듈화와 재사용성이 크게 향상되며, 기존 Registry를 확장하거나 자신만의 모듈을 등록하여, 특정 연구 목적에 맞는 커스텀 기능을 손쉽게 구현할 수 있음 CPU와 CUDA에서 효율적으로 동작하는 다양한 연산(op)을 제공컴퓨터 비전 작업에서 자주 사용되는 연산들을 최적화하여, 모델 학습과 추론 시 성능을 크게 향상시킬 수 있도록 설계mmcv에는 두 가지 버전이 있습니다:
주의:
동일한 환경에 두 버전을 모두 설치하면 ModuleNotFound와 같은 오류가 발생할 수 있습니다. 한 버전을 제거한 후 다른 버전을 설치해야 합니다. CUDA 사용이 가능한 경우에는 전체 기능을 제공하는 full version을 설치하는 것이 권장됩니다.
mmcv를 설치하기 전에, PyTorch가 PyTorch 공식 설치 가이드를 따라 성공적으로 설치되었는지 확인하세요. 아래 명령어를 실행하여 확인할 수 있습니다:
python -c 'import torch;print(torch.__version__)'
버전 정보가 출력되면 PyTorch가 설치된 것입니다.
mim은 OpenMMLab 프로젝트의 패키지 관리 도구로, mmcv 설치를 쉽게 만들어줍니다.
먼저 mim을 설치합니다.
pip install -U openmim
mim을 사용하여 mmcv를 설치합니다.
mim install mmcv
만약 위의 설치 명령이 .whl 파일 대신 .tar.gz 형식의 소스 패키지를 사용한다면, 이는 사용 중인 PyTorch, CUDA, 또는 mmcv 버전에 해당하는 미리 빌드된 패키지가 없기 때문입니다. 이 경우 소스에서 mmcv를 빌드할 수 있습니다.
미리 빌드된 패키지를 이용한 설치 로그와 소스 패키지를 이용한 설치 로그는 따로 제공됩니다.
예를 들어, mmcv 버전 2.0.0을 설치하려면 다음 명령어를 사용할 수 있습니다:
mim install mmcv==2.0.0
참고:
만약 최소 컨테이너 환경이나 GUI가 없는 서버에서 opencv-python 대신 opencv-python-headless를 사용하고 싶다면, mmcv를 설치하기 전에 opencv-python-headless를 먼저 설치하여 opencv-python의 설치를 건너뛸 수 있습니다.
또한, 의존성 라이브러리 설치 시간이 너무 오래 걸린다면 아래와 같이 pypi 소스를 지정할 수 있습니다:
mim install mmcv -i https://pypi.tuna.tsinghua.edu.cn/simple
설치가 완료된 후 check_installation.py를 실행하여 mmcv-full 설치 상태를 확인할 수 있습니다.
CUDA와 PyTorch 버전을 확인하려면 아래 명령어를 실행하세요:
python -c 'import torch;print(torch.__version__);print(torch.version.cuda)'
시스템 유형, CUDA 버전, PyTorch 버전 및 mmcv 버전에 따라 적절한 설치 명령어를 선택합니다.
예시 (Linux, CUDA 12.1, PyTorch 2.4.x, mmcv 2.2.0):
pip install mmcv==2.2.0 -f https://download.openmmlab.com/mmcv/dist/cu121/torch2.4/index.html
만약 위 드롭다운 목록에서 해당하는 버전을 찾지 못하면, 미리 빌드된 패키지가 없는 것이므로 소스에서 mmcv를 빌드할 수 있습니다.
참고:
mmcv는 PyTorch 1.x.0에서만 컴파일됩니다. 호환성은 보통 1.x.0과 1.x.1 사이에서 유지되므로, 예를 들어 PyTorch 버전이 1.8.1인 경우, PyTorch 1.x.0으로 컴파일된 mmcv를 설치해도 잘 작동합니다.
참고:
만약 최소 컨테이너 환경이나 GUI가 없는 서버에서 opencv-python-headless를 사용하고자 한다면, mmcv를 설치하기 전에 이를 먼저 설치하면 opencv-python의 설치를 건너뛸 수 있습니다.
또한, 의존성 라이브러리 설치 시간이 너무 오래 걸린다면 아래와 같이 pypi 소스를 지정할 수 있습니다:
mim install mmcv -i https://pypi.tuna.tsinghua.edu.cn/simple
설치 후 check_installation.py를 실행하여 mmcv 설치를 확인할 수 있습니다.
로컬 저장소를 사용하여 빌드하는 경우:
git clone https://github.com/open-mmlab/mmcv.git && cd mmcv
docker build -t mmcv -f docker/release/Dockerfile .
원격 저장소를 사용하여 빌드하는 경우:
docker build -t mmcv https://github.com/open-mmlab/mmcv.git#main:docker/release
기본적으로 Dockerfile은 mmcv-full의 최신 릴리즈 버전을 설치하지만, 원하는 mmcv 버전을 지정할 수 있습니다.
예를 들어, mmcv 버전을 2.0.0으로 지정하여 빌드하려면:
docker image build -t mmcv -f docker/release/Dockerfile --build-arg MMCV=2.0.0 .
PyTorch와 CUDA의 다른 버전을 사용하려면 해당 옵션들도 함께 전달할 수 있습니다. 예를 들어, PyTorch 1.11과 CUDA 11.3으로 빌드하려면:
docker build -t mmcv -f docker/release/Dockerfile \
--build-arg PYTORCH=1.11.0 \
--build-arg CUDA=11.3 \
--build-arg CUDNN=8 \
--build-arg MMCV=2.0.0 .
더 많은 PyTorch와 CUDA 버전은 dockerhub/pytorch에서 확인할 수 있습니다.
PyTorch 관련 모듈을 사용해야 한다면, PyTorch가 성공적으로 설치되었는지 PyTorch 공식 설치 가이드를 참고하여 확인한 후, mmcv-lite를 설치합니다.
pip install mmcv-lite