imagededup 是一個 python 套件,它簡化了在圖像集合中尋找精確和近似重複項的任務。
該套件提供了利用雜湊演算法的功能,雜湊演算法特別擅長尋找精確的重複項,而卷積神經網路也擅長尋找近似的重複項。也提供了一個評估框架來判斷給定資料集的重複資料刪除品質。
以下詳細介紹了該包提供的功能:
使用以下演算法之一尋找目錄中的重複項:
卷積神經網路 (CNN) - 從多個預先打包模型中進行選擇或提供您自己的自訂模型。
感知哈希(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:
git 克隆 https://github.com/idealo/imagededup.gitcd imagededup pip install "cython>=0.29"python setup.py install
為了使用感知雜湊在圖像目錄中尋找重複項,可以使用以下工作流程:
導入感知哈希方法
從 imagededup.methods 導入 PHashphasher = PHash()
為圖像目錄中的所有圖像產生編碼
編碼 = phasher.encode_images(image_dir='path/to/image/directory')
使用生成的編碼查找重複項
重複項 = phasher.find_duplicates(encoding_map=encodings)
使用重複項字典繪製給定檔案(例如:「ukbench00120.jpg」)所獲得的重複項
從 imagedup.utils 導入plot_duplicatesplot_duplicates(image_dir='path/to/image/directory',duplicate_map=duplicates,filename='ukbench00120.jpg')
輸出如下圖所示:
工作流程的完整程式碼是:
from imagedup.methods import PHashphasher = PHash()# 為影像目錄中的所有影像產生編碼encodings = phasher.encode_images(image_dir='path/to/image/directory')# 使用產生的編碼重複項duplicates = phasher. find_duplicates(encoding_map =encodings)# 使用重複項字典繪製給定檔案所獲得的重複項from imagededup.utils importplot_duplicatesplot_duplicates(image_dir='path/to/image/directory',duplicate_mapates(image_dir='pathname=benchimage/directory',duplicate_map_dupates,filename.
也可以使用您自己的自訂模型透過 CNN 方法來尋找重複項。
有關範例,請參閱儲存庫的這一部分。
更詳細的套件功能使用請參考:https://idealo.github.io/imagededup/
更新:提供的基準僅在imagededup v0.2.2
之前有效。下一個版本對所有方法都有重大更改,因此目前的基準可能不成立。
文件中提供了不同方法的速度和分類指標的詳細基準。一般來說,可以得出以下結論:
CNN 最適合近似重複資料和包含轉換的資料集。
所有重複資料刪除方法都適用於包含精確重複項的資料集,但差異雜湊是最快的。
我們歡迎各種貢獻。有關更多詳細信息,請參閱貢獻指南。
如果 Imagededup 對您的研究有用,請在您的出版物中引用它。以下是 BibTeX 條目的範例:
@misc{idealods2019imagededup,標題={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
有關詳細信息,請參閱許可證。