DETR(Detection Transformer) 맛보기

bandi·2023년 5월 11일
1

Object Detection

목록 보기
1/2

목표 : GitHub에서 DETR 코드를 가져오고 학습과 평가 수행해보기

  • 이 글은 Window 환경을 기준으로 작성되었습니다.

먼저 아래 링크에서 DETR(Detection transformer)의 코드를 다운로드 받아야 합니다.

DETR GitHub

만일 git이 설치되지 않았거나 가상환경이 설정되지 않았다면 아래 글들을 참고해주세요!

Git bash 설치 및 실행하기

Anaconda 설치 및 가상환경 설정

아래 그림에서 초록색 버튼, [<>Code]를 클릭하면 여러 옵션이 있습니다.

가장 아래에 있는 Download ZIP은 단순히 전체 코드를 압축된 파일로 컴퓨터에 다운로드 하는 것입니다.

저희는 git 명령을 통해 코드를 다운로드 해보겠습니다.

먼저 Clone 항목에 아래 링크를 복사해야 합니다.

  • 직접 드래그 하셔도 되지만, 오른쪽에 있는 겹쳐진 박스를 클릭하시면 편하게 복사가 가능합니다.

이후 코드를 다운로드할 폴더에서 git bash를 실행시키고 아래 명령을 수행합니다.

  • git clone 이후에 원하는 github 주소를 입력하면 됩니다.
  • 이전에 복사한 주소를 붙여넣으시면 됩니다. 이때 Ctrl+V(Linux-Vim 환경이라 그럴겁니다.)가 작동하지 않는다면 Shift+Ins를 눌러보세요.
  • 가장 뒤의 .은 현재 폴더에 코드를 다운로드 하겠다는 뜻이며 .이 없다면 새로운 폴더를 생성 후 그 아래에 코드를 다운로드합니다.
git clone https://github.com/facebookresearch/detr.git .

다음은 환경설정입니다. 먼저 pytorch가 설치되어야 합니다. 아래 링크에 들어가서 다운로드 할 수 있습니다.

PyTorch Install

설치에 앞서 CUDA version을 확인해야 하는데, Anaconda Prompt를 실행시킨 후 아래 명령을 수행하면 CUDA version을 알 수 있습니다.

nvcc -V

아래와 같이 본인 환경에 맞는 옵션을 선택 후 아래 제시된 명령을 미리 생성한 가상환경이 활성화된 상태에서 실행하면 됩니다.

  • anaconda prompt에서 실행합니다.
  • 가장 왼쪽의 소괄호 안 글자가 base가 아닌 가상환경명으로 되어있어야 가상환경이 활성화된 것 입니다.

DETR의 학습과 평가에 사용되는 library의 설치를 위해 아래 명령들을 차례로 수행하세요.

conda install cython scipy
pip install pycocotools

다음은 객체 인식의 대표적인 데이터셋인 COCO를 다운로드 하겠습니다.

아래 링크 주소를 하나씩 구글 검색 창에 입력하시면 설치가 진행됩니다.

http://images.cocodataset.org/zips/train2017.zip
http://images.cocodataset.org/zips/val2017.zip
http://images.cocodataset.org/annotations/annotations_trainval2017.zip

설치된 압축파일들의 압축을 풀고 아래와 같은 경로로 정렬합니다.


우선 아래 명령을 통해 프롬프트의 경로를 detr 코드가 있는 경로로 변경합니다.

cd /path/to/detr_code/

학습의 경우 아래 명령을 입력하시면 됩니다.

  • 고오급 GPU인 V100 8개를 가지고도 학습(300 epochs)하는 데 6일이 걸렸다고 하니 실행 여부만 확인하고 멈추시길 추천합니다.
# GPU가 1개일 경우
python main.py

# GPU가 여러개일 경우
python -m torch.distributed.launch --nproc_per_node=사용할 GPU 개수 --use_env main.py --coco_path /path/to/coco

아래와 같이 coco dataset을 로드한 후 학습이 시작되는 것을 확인할 수 있습니다.

마지막으로 아래 명령을 실행하면 validation 이미지에 대한 모델 예측 성능을 보여줍니다.

  • 모델은 COCO Dataset에 대해 사전학습된 모델을 사용합니다.
python main.py --batch_size 2 --no_aux_loss --eval --resume https://dl.fbaipublicfiles.com/detr/detr-r50-e632da11.pth --coco_path /path/to/coco

아래와 같이 사전학습된 DETR 모델의 성능을 확인할 수 있습니다.

  • AP는 객체 인식에서 사용되는 평가 지표입니다.

profile
AI Explorer

0개의 댓글