e-mail: [email protected], mobile: 010-4058-8210
Python
- ViT(facebook/dino-vits16)
- chromadb(vector DB)
- Pillow, Pandas, Numpy
- requirements.txt 참고
- chromadb, transformers, pillow, pandas, numpy, torch2.2.0+cu118
- GPU 활용을 위해 CUDA 11.8, cuDNN 8.6.0 설치
- torch는 pip3 install torch --index-url https://download.pytorch.org/whl/cu118 명령어를 통해 설치
- 데이터셋은 imagenet-1k의 validation set(50,000장)을 "c:/val_images" 경로에 미리 저장
- 데이터셋을 다른 경로에 저장할 경우 main.py의 DATASET_DIR 변수에 데이터셋이 저장된 경로를 할당
- 이미지를 임베딩하기 위한 ViT 모델 로드
- 임베딩 벡터를 저장하기 위한 벡터 DB(chromadb) 구성
- 미리 저장해 둔 데이터셋의 경로로부터 이미지를 읽고 500장씩 임베딩 및 DB에 저장
- 500개씩 벡터를 DB에 쿼리하여 cosine 유사도를 측정하고 유사도가 0.9 이상인 이미지 쌍 찾기
- 유사도를 기준으로 내림차순으로 정렬
- 중복된 이미지 쌍 제거
- csv 파일로 결과 저장