기존에 존재하는 실시간 image segmentation 모델과 이미지나 동영상에서 특정 부분을 지우고 채워주는 inpainting 모델을 결합하여 실시간으로 객체를 검출하고 지우는 프로그램 구현한다.
천형주 |
|
민예진 |
|
main 소스 파일 위치와 pretrained model 위치를 명시해놓음
source // 소스 모음 (Inpainting model clone 위치)
├── bin // main program 소스 폴더
│ ├── Enum.py // Enum
│ ├── main.py // main 소스 파일
│ └── yolov8n-seg.pt // YOLOv8 segmentation pretrained model
├── deepfillv2 // Inpainting model : deepfillv2
│ └── pretrained // pretrained model 폴더
│ └── states_pt_places2.pth // deepfillv2 pretrained model (다운로드 해야 함)
├── lama // Inpainting model : lama
│ └── big-lama // pretrained model 폴더
│ └── models
│ └── best.ckpt // lama pretrained model (다운로드 해야 함)
│ └── config.yaml // lama config 파일
├── MAT // Inpainting model : MAT
│ └── pretrained // pretrained model 폴더
│ └── Places_512.pkl // MAT pretrained model (다운로드 해야 함)
└── requirements.txt // 패키치 설치 파일
- 구동환경 : pytorch 2.0.1 / CUDA 11.8 / anaconda 23.7.2
- 패키지 : requirements.txt 참고
- 설치
- 버전에 맞는 pytorch 및 cuda 설치
- 모델 준비 : source 폴더 아래에 clone
git clone https://github.com/advimman/lama.git
git clone https://github.com/nipponjo/deepfillv2-pytorch.git
git clone https://github.com/fenglinglwb/MAT.git
레포지토리의 폴더에 있는 파일 복사 붙여넣기
- 패키지 설치
pip install -r requirements.txt
conda install ninja
- pretrained model : 파일 구조도를 참고하여 배치
LaMa (https://github.com/advimman/lama)
Deepfillv2 (https://github.com/nipponjo/deepfillv2-pytorch)
MAT (https://github.com/fenglinglwb/mat)
- 사용법
python main.py <<Inpainting Model 이름>>
Inpainting Model 이름 : LAMA, DEEPFILLV2, MAT 중 하나를 적는다.