0
我收集了一些照片,並且想要區分類似照片的聚類。圖像的哪些特徵以及我應該使用哪種算法來解決我的任務?通過在python中的相似性進行圖像聚類
我收集了一些照片,並且想要區分類似照片的聚類。圖像的哪些特徵以及我應該使用哪種算法來解決我的任務?通過在python中的相似性進行圖像聚類
這是一個太寬泛的問題。
一般而言,您可以使用任何clustering mechanism,例如,一個流行的k-means。爲了準備數據進行集羣,您需要將集合轉換爲數組X,其中每一行都是一個示例(圖像),每列都是一個特徵。
主要問題 - 你的功能應該是什麼。不知道你想要完成什麼,很難回答。如果您的圖像很小並且尺寸相同,則可以將每個像素作爲一個特徵。如果您有任何元數據並希望使用它進行排序 - 您可以將元數據中的每個標籤都作爲一項功能。
現在,如果您確實需要在圖像之間找到某些圖案,則必須應用額外的處理層,如convolutional neural network,它基本上允許您從圖像的不同部分提取特徵。你可以把它想象成一個過濾器,它會將每個圖像轉換成8x8矩陣,然後相應地可以在數組X中使用64行不同的特徵來進行聚類。
我想讓每個簇都由相同對象/場景的照片組成,即我拍攝了三張我的房間照片,但是來自一些不同的位置,或者某張照片上的光線較少。所以照片不完全相同,但非常相似。 – alex
在這種情況下,我建議先深入研究深度學習(convnet),然後再嘗試一種簡單的方法。我只是從每個圖像中提取像素的圖,特別是因爲它們都具有相同的大小。將照片轉換爲黑白色將幫助您降低複雜程度。然後嘗試應用scikit-learn的k-means。不同數量的集羣也可以查看影響。但最有可能的是,你將不得不應用某種方式來獲得有意義的結果。我只是建議分階段進行。 – omdv
事實上,我建議看看mahotas圖書館,這可以很好地適用於你的情況。鏈接 - http://mahotas.readthedocs.io/en/latest/features.html – omdv