mmdetection과 친해지기 위해서 그리고 내가 알고 진행한건지 파악하기 위해서 블로그로 남겨두려고 한다.
현재, 노트북은 딥러닝 모델을 돌릴 수 있는 gpu가 아니라서 코렙에서 진행했다.
코렙으로 초기 개발환경 세팅(사실 크게 세팅할 것도 없이 코드 복붙만 해주면 되지만)하면 20분은 가볍게 넘긴다.
!nvcc -V
!gcc --version
cuda 버전을 보면 11.2이고, gcc는 7.5.0이다.
확인한 cuda 버전과 torch 버전 잘 맞춰서 다운 받아야한다.
*수정 필요
# install dependencies: (use cu111 because colab has CUDA 11.1)
!pip install torch==1.9.0+cu111 torchvision==0.10.0+cu111 -f https://download.pytorch.org/whl/torch_stable.html
pip install mmcv-full
pip install mmdet
cd mmdetection
pip install -r requirements/build.txt
mkdir checkpoints
!wget ./mmdetection/checkpoints/faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth http://download.openmmlab.com/mmdetection/v2.0/faster_rcnn/faster_rcnn_r50_fpn_1x_coco/faster_rcnn
demo파일에 있는대로 faster_rcnn을 가져왔다. 내가 쓰고 싶은 모델은 swin transformer인데 이모델도 데모했을때 문제없음을 확인했다.
어느정도 세팅된 거 같으면 다시한번 버전들 확인하기
from mmcv import collect_env
collect_env()
몰랐는데 코렙 gpu 꽤 좋은거였다..무료로 쓸수 있음에 감사합니다
쿠다 사용가능하고 쿠다, 토치 버전 맞췄으니 확인 끝
이제는 faster rcnn 모델 데모하려고 한다.
# 필요한 모듈 로드하기, 순서대로 init_detector함수, inference_detector함수, show_result_pyplot함수 불러오기
from mmdet.apis import init_detector, inference_detector, show_result_pyplot
# config_file은 컨피그를 사용하고 디텍터를 초기화하기 위해 사용, 파일명에 coco가 들어가는데 코코 클래스를 디폴트로 가져옴
config_file = '/content/mmdetection/configs/faster_rcnn/faster_rcnn_r50_fpn_1x_coco.py'
# checkpoint_file은 체크포인트 파일(가중치 파일)을 로드하기위해서 사용
checkpoint_file = '/content/mmdetection/faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth'
# init_detector함수에서 가중치 파일
model = init_detector(config_file, checkpoint_file, device='cuda:0')
# 추론에 사용할 이미지가 뭔지 확인
import cv2
import matplotlib.pyplot as plt
img = '/content/mmdetection/demo/demo.jpg'
# rgb로 바꿔주기, opencv 버전 4.0부터는 컬러 안바꿔도 된다고 했던거 같음
img_arr = cv2.cvtColor(cv2.imread(img), cv2.COLOR_BGR2RGB)
plt.figure(figsize=(12, 12))
plt.imshow(img_arr)
# model 즉, 디텍터를 가지고 이미지 추론하고 결과를 보여줌
results = inference_detector(model, img)
show_result_pyplot(model, img, results)
작은 사이즈들 잘 맞추는 것 같긴함
내가 하려는건 isntance segmentation이기 때문에 인스턴스 세그 모델 써야겠다.