Detectron2 사용하기 (feat. Docker)
by CoriDetectron2는 Object Detection 등에 사용하는 라이브러리로, 나는 PDF 내 Table 및 수식을 감지하기 위해 사용해보려 했다.
사용하는 PC에 설치되어 있는 Cuda, Cudnn 버전에 맞는 Docker Image를 사용해야 한다.
cuda 10.2 버전을 사용중이기에, 관련 이미지를 사용하는 Dockerfile을 만들어 기초 환경을 구축했다.
* 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
$ apt-get install libglib2.0-0 -y
** 추가. detect 과정에서 다음과 같은 오류가 발생하는 경우
Couldn't load custom C++ ops ...
pytorch와 torchvision 버전 간 호환성 문제로 인해 발생하는 것이니 https://github.com/pytorch/vision#installation
여기서 버전을 확인한 후 다시 설치해주자.
Ref.
'AI > Natural Language Processing' 카테고리의 다른 글
RAG (Retrieval-Augmented Generation) (0) | 2024.06.05 |
---|---|
[LLM] Aya23 (0) | 2024.05.28 |
LangChain을 이용해 MySQL과 소통해보자 ! (0) | 2024.05.23 |
Bi-encoder, Cross-encoder, Poly-encoder (구현 실습) (0) | 2022.10.12 |
Bi-encoder, Cross-encoder, Poly-encoder (이론) (0) | 2022.09.29 |
블로그의 정보
코딩하는 오리
Cori