imagededup은 이미지 컬렉션에서 정확 하고 거의 중복된 항목을 찾는 작업을 단순화하는 Python 패키지입니다.
이 패키지는 정확한 중복 항목을 찾는 데 특히 효과적인 해싱 알고리즘과 거의 중복 항목을 찾는 데에도 적합한 컨볼루션 신경망을 활용하는 기능을 제공합니다. 특정 데이터 세트에 대한 중복 제거 품질을 판단하기 위한 평가 프레임워크도 제공됩니다.
다음은 패키지에서 제공하는 기능을 자세히 설명합니다.
다음 알고리즘 중 하나를 사용하여 디렉터리에서 중복 항목 찾기:
CNN(Convolutional Neural Network) - 사전 패키지된 여러 모델 중에서 선택하거나 사용자 정의 모델을 제공합니다.
인지적 해싱(PHash)
차이 해싱(DHash)
웨이블릿 해싱(WHash)
평균 해싱(AHash)
위에 언급된 알고리즘 중 하나를 사용하여 이미지에 대한 인코딩 생성.
실제 매핑을 바탕으로 중복 제거의 효율성을 평가하는 프레임워크입니다.
특정 이미지 파일에 대해 중복된 항목이 발견되었습니다.
패키지에 대한 자세한 문서는 https://idealo.github.io/imagededup/에서 확인할 수 있습니다.
imagededup은 Python 3.8+와 호환되며 Linux, MacOS X 및 Windows에서 실행됩니다. Apache 2.0 라이센스에 따라 배포됩니다.
설치
빠른 시작
벤치마크
기여하다
소환
유지관리자
특허
imagededup을 설치하는 방법에는 두 가지가 있습니다.
PyPI에서 imagededup 설치(권장):
pip install imagededup
GitHub 소스에서 imagededup을 설치합니다.
자식 클론 https://github.com/idealo/imagededup.gitcd imagededup pip install "cython>=0.29"python setup.py 설치
지각 해싱을 사용하여 이미지 디렉터리에서 중복 항목을 찾으려면 다음 작업 흐름을 사용할 수 있습니다.
지각 해싱 방법 가져오기
imagededup.methods import PHashphasher = PHash()에서
이미지 디렉터리의 모든 이미지에 대한 인코딩 생성
인코딩 = phasher.encode_images(image_dir='경로/to/image/directory')
생성된 인코딩을 사용하여 중복 찾기
중복 = phasher.find_duplicates(encoding_map=인코딩)
중복 사전을 사용하여 주어진 파일(예: 'ukbench00120.jpg')에 대해 얻은 중복을 플롯합니다.
imagededup.utils에서 importplot_duplicatesplot_duplicates(image_dir='path/to/image/directory',duplicate_map=duplicates,filename='ukbench00120.jpg')
출력은 다음과 같습니다.
워크플로의 전체 코드는 다음과 같습니다.
from imagededup.methods import PHashphasher = PHash()# 이미지 디렉토리의 모든 이미지에 대한 인코딩 생성encodings = phasher.encode_images(image_dir='path/to/image/directory')# 생성된 인코딩을 사용하여 중복 항목 찾기duplicates = phasher.find_duplicates(encoding_map =인코딩)# imagededup.utils의 중복 사전을 사용하여 특정 파일에 대해 얻은 중복을 플롯합니다. importplot_duplicatesplot_duplicates(image_dir='path/to/image/directory',duplicate_map=duplicates,filename='ukbench00120.jpg')
CNN 방법을 사용하여 중복 항목을 찾기 위해 사용자 정의 모델을 사용할 수도 있습니다.
예를 들어 저장소의 이 부분을 참조하세요.
패키지 기능에 대한 자세한 사용법은 https://idealo.github.io/imagededup/을 참조하세요.
업데이트 : 제공된 벤치마크는 imagededup v0.2.2
까지만 유효합니다. 다음 릴리스에서는 모든 방법이 크게 변경되므로 현재 벤치마크가 유지되지 않을 수 있습니다.
다양한 방법에 대한 속도 및 분류 측정항목에 대한 자세한 벤치마크가 문서에 제공되어 있습니다. 일반적으로 다음과 같은 결론을 내릴 수 있습니다.
CNN은 거의 중복된 데이터와 변환이 포함된 데이터 세트에 가장 적합합니다.
모든 중복 제거 방법은 정확한 중복이 포함된 데이터 세트에서 잘 작동하지만 차이 해싱이 가장 빠릅니다.
우리는 모든 종류의 기여를 환영합니다. 자세한 내용은 기여 가이드를 참조하세요.
연구에 도움이 된다면 출판물에 Imagededup을 인용해 주세요. 다음은 BibTeX 항목의 예입니다.
@misc{idealods2019imagededup, title={Imagededup}, 작성자={Tanuj Jain 및 Christopher Lennan 및 Zubin John 및 Dat Tran}, 연도={2019}, Howpublished={url{https://github.com/idealo/imagededup} }, }
Tanuj Jain, github: tanujjain
크리스토퍼 레넌, github: clennan
Dat Tran, github: datitran
자세한 내용은 라이센스를 참조하세요.