안녕하세요. 최근에 Segmentation 연구를 시작하면서 최신 논문들을 살펴보면 MMCV Segmentation이라는 라이브러리를 다들 애용하는 것을 볼 수 있었습니다. 그런데 저는 완전히 처음보는 라이브러리라서 해석하기도 어렵고 활용하는 것도 어려워서 이참에 블로그 글로 정리해서 두고두고 보도록 하겠습니다. ^^
1. MMCV Project
먼저, MMCV는 OpenMMLab이라는 오픈소스 프로젝트팀이 만들어낸 새로운 딥러닝 라이브러리입니다. 기본적으로 Pytorch 기반으로 동작하기 때문에 기존에 Pytorch 유저시라면 보다 쉽게 활용해볼 수 있겠네요. MMCV는 심층신경망 모델을 학습 및 평가하는 데 있어 필수적인 요소들을 모두 다 갖춘 라이브러리라고 합니다. 실제로 segmentation에서 자주 사용되는 backbone 네트워크와 다양한 데이터셋을 제공하기 때문에 적응만 하면 편한 라이브러리가 될 수 있겠네요. 또한, MMCV Project에서는 segmentation 뿐만 아니라 Classification, Detection, OCR, Post, Tracking, Generation 등 다양한 task의 모델들과 데이터셋들을 제공하고 있습니다. 여기까지가 MMCV에 대한 간단한 설명입니다.
2. MMSegmentation 설치 (공식 설치 과정 링크)
STEP1. 가상환경 생성
자!! 그럼 이렇게 중요한 라이브러리... 어떻게 사용할까요? 바로 알아보도록 하죠. 일단, 설치를 해야합니다. 여기서 중요한 점은 MMCV 라이브러리는 기본적으로 CUDA 버전과 Pytorch 버전에 민감하기 때문에 잘 맞춰주어야하죠. 저의 실험환경은 다음과 같습니다.
Ubuntu 20.04
NVIDIA GeForce 2080 Ti
CUDA 11.0
아마도 여기서는 이미 CUDA는 적절한 버전을 맞춰서 잘 설치하셨다고 가정하겠습니다. 참고로 이 포스팅을 작성하기 전에 pytorch를 최신형으로 설치를 한 뒤 MMCV 라이브러리를 사용해보려고 했는 데 바로 호환성 문제가 발생해서 안되는 것을 확인했으니 이 부분은 꼭 맞춰주시길 바랍니다.
이렇게 준비가 되었으면 가상환경을 만들어서 라이브러리를 설치해볼차례입니다. 저는 conda를 이용해서 가상환경을 만들었는데 이에 대한 자세한 설명은 아래의 두 링크를 참조하시길 바랍니다.
conda create --name openmmlab python=3.8 -y
conda activate openmmlab
여기까지 오셨으면 openmmlab이라는 새로운 가상환경이 만들어지셨을겁니다. 저희는 해당 가상환경에서 MMCV 라이브러리를 설치하도록 하겠습니다.
STEP2. 본인의 환경에 맞는 Pytorch 버전 설치
저는 CUDA11.0 버전을 사용하기 때문에 해당 링크에서 CUDA 버전에 맞는 최신형 파이토치 버전인 torch.1.8.0을 설치하도록 하겠습니다.
conda install pytorch==1.8.0 torchvision==0.9.0 torchaudio==0.8.0 -c pytorch
STEP3. MMCV 라이브러리 설치
여기서 중요한 점은 MMCV Segmentation은 MMCV의 하위 라이브러리이기 때문에 MMCV 라이브러리를 먼저 설치해야합니다. 이때, MMCV 라이브러리의 설치를 도와주는 것이 openmim이라는 라이브러리입니다.
pip install -U openmim
mim install mmcv-full
STEP4. MMCV Segmentation 깃허브 클론
MMCV Segmentation을 사용하기 위해서 해당 라이브러리의 깃허브를 다운로드 해보도록 하겠습니다. 다운로드 한 뒤 해당 파일로 이동하여 필요한 라이브러리를 추가적으로 설치해주면 됩니다.
git clone https://github.com/open-mmlab/mmsegmentation.git
cd mmsegmentation
pip install -v -e .
STEP5. 설치 확인
여기까지 별도의 에러가 없으셨다면 잘 설치가 되었을겁니다. 이제 잘 설치가 되었는 지 확인하기 위한 작업을 수행하도록 하죠. 먼저, 필요한 체크포인트 파일과 configuation 파일을 다운받도록 하겠습니다.
mim download mmsegmentation --config pspnet_r50-d8_512x1024_40k_cityscapes --dest .
다음으로 방금 클론한 github의 demo 파일을 이용해서 잘 설치가 되었는 지 확인해보도록 하죠.
python demo/image_demo.py demo/demo.png configs/pspnet/pspnet_r50-d8_512x1024_40k_cityscapes.py pspnet_r50-d8_512x1024_40k_cityscapes_20200605_003338-2966598c.pth --device cuda:0 --out-file result.jpg
만약 실행했을 때 아래의 결과가 나온다면 잘 된 것입니다.
수고하셨습니다!! 이제 MMCV Segmentation 라이브러리를 사용하기 위한 모든 준비를 마쳤습니다. 하지만, 여전히 할 일은 많이 남아있죠. 어떤 기능들이 존재하는 지 알아보고 모델의 학습과 평가는 어떤 식으로 진행해야하는 지 알아보아야합니다. 오늘은 여기까지 하도록 하겠습니다. 다음 포스팅에서는 모델을 학습하는 방법에 대해서 알아보도록 하죠.
'Programming > Python' 카테고리의 다른 글
MMCV Segmentation 입문기 2 (0) | 2022.12.02 |
---|---|
Opencv 제대로 쓰기[6].영상 히스토그램 (0) | 2021.06.12 |
Opencv 제대로 쓰기[5].영상 샤프닝 (0) | 2021.05.31 |
Opencv 제대로 쓰기[4].흐림 처리 (0) | 2021.05.23 |
Opencv 제대로 쓰기[3].외부 카메라 동영상 스크린샷 저장하기 (0) | 2021.05.01 |