Carpe diem

NLP 관련 석사 과정 재학 중 (2022.03 ~ )

잡다한 이야기

Detectron2 사용하기 (feat. Docker)

Cori 2024. 4. 11. 14:57

 

사용하는 PC에 설치되어 있는 Cuda, Cudnn 버전에 맞는 Docker Image를 사용해야 한다.

cuda 10.2 버전을 사용중이기에, 관련 이미지를 사용하는 Dockerfile을 만들어 기초 환경을 구축했다. 

dockerfile
0.00MB
requirements.txt
0.00MB

 

* detectron2는 현재 (2024.04.11) python 3.9 이하 버전만 지원한다고 하니, 이 점에 유의하자. 

 

$ docker build -t detectron2:test . 

$ docker run -p 8890:8890 -i -t -v C:/Users/:/workspace detectron:test

 

기본적인 설정은 완료했고, 도커도 실행했다.

도커 안에서, 다음 명령어로 필요한 패키지들을 설치해주자. 

 

$ apt-get install poppler-utils

$ apt-get install tesseract-ocr-eng

$ pip install layoutparser torchvision

$ pip install "detectron2@git+https://github.com/facebookresearch/detectron2.git@v0.5#egg=detectron2"

$ pip install pdf2img

$ pip install "layoutparser[ocr]"

 

이후 자유롭게 코딩하면 되는데, layoutparser에서 모델을 로드할 때 다음과 같은 오류가 발생할 수 있다.

 

ImportError: libGL.so.1: cannot open shared object file: No such file or directory

 

얘는 모델을 불러오는 과정에서 "importlib.import_module("cv2")"를 호출하는데, 이거 때문에 발생한다.

다음 명령어를 통해 해결해주자

 

$ apt-get install libgl1-mesa-glx  

 

** 추가. detect 과정에서 다음과 같은 오류가 발생하는 경우 

Couldn't load custom C++ ops ... 

 

pytorch와 torchvision 버전 간 호환성 문제로 인해 발생하는 것이니 https://github.com/pytorch/vision#installation 

여기서 버전을 확인한 후 다시 설치해주자. 

 

 

Ref. 

https://coens.tistory.com/19