中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

如何為數(shù)據(jù)集構(gòu)建圖像重復(fù)查找器?(附代碼)

2018-12-21    來源:raincent

容器云強(qiáng)勢上線!快速搭建集群,上萬Linux鏡像隨意使用

當(dāng)您從互聯(lián)網(wǎng)上下載圖像時,通常會發(fā)現(xiàn)噪聲數(shù)據(jù)。此外,相似的圖片都在附近,一個接一個地看到它們并試圖找到重復(fù)數(shù)據(jù)來清理數(shù)據(jù)集是很繁瑣的。 考慮到這個問題,作者構(gòu)建了一個重復(fù)的查找程序,為您找到重復(fù)項(xiàng),您只需要選擇是否要刪除它們。您可以在fastai庫(網(wǎng)址:https://github.com/fastai/fastai)中找到代碼。在這篇文章中,作者將解釋他是如何構(gòu)建這個工具的。

 

 

這是算法找到的實(shí)際副本

第1步:獲取激活

我們通常使用CNN對圖像進(jìn)行分類,只對網(wǎng)絡(luò)末端的softmax輸出感興趣,它告訴我們網(wǎng)絡(luò)認(rèn)為圖像標(biāo)簽是什么。在這種情況下,我們將比較網(wǎng)絡(luò)的內(nèi)層,希望網(wǎng)絡(luò)學(xué)到的一些功能對于查找類似的圖像很有用。為了實(shí)現(xiàn)這一點(diǎn),我利用了fastai庫中的強(qiáng)大callbacks 功能(代碼頁:https://docs.fast.ai/callbacks.hooks.html),它允許我們保存網(wǎng)絡(luò)中任何子層的激活。

hook = hook_output(learn.model[0][7][2])

我使用的激活是Resnet架構(gòu)的最后一個卷積塊的輸出,因?yàn)槲易⒁獾剿鼈冊诮?jīng)驗(yàn)上更好地工作。

第2步:合并

您可能知道,CNN中的隱藏層有四個維度:批量大小、高度、寬度和要素數(shù)量。假設(shè)我們正在談?wù)撘粋特定的圖像,或者bs = 1。例如,在Resnet 50的情況下,最后一層的輸出將具有尺寸(1,7,7,248 )。由于這里的維度非常高,計算相似性會非常耗時,這對用戶來說是一種痛苦。這個問題的答案是使用Pooling(網(wǎng)址:http://deeplearning.stanford.edu/tutorial/supervised/Pooling/) 。我們將匯集每個7x7矩陣,以便得到一個維度張量(1,pool_dim,pool_dim,2048)。

我使用的池函數(shù)是AdaptiveConcatPooling(自適應(yīng)平均池和自適應(yīng)最大池連接在一起),使用的池維數(shù)是4,因?yàn)槲野l(fā)現(xiàn)它是速度和性能的良好組合。

第3步:展平

我們以四個維度的張量結(jié)束了最后一步。然而,為了計算不同示例之間的相似性,我們需要一維張量(向量)。我們將展平每個圖像的激活以獲得大小為pool_dim x pool_dim x 512的向量,并且我們將每個圖像的向量連接成具有維度(n_exs,vector_dim)的矩陣。現(xiàn)在我們?yōu)槊總n_exs圖像都有一個特征向量。是時候計算相似之處了

 

 

第4步:計算相似之處

為了計算每個特征向量之間的相似性,我們將使用余弦相似度函數(shù)。請注意,如果我們將每個向量與每個其他向量組合在一起,則所有相似度將被計算兩次。還要注意,如果我們計算矢量與其自身的相似性,相似性的度量顯然將是最高的。因此,對于我們的相似性矩陣,我們將用零替換對角線和右上角部分。

 

 

第五步:結(jié)果

讓我們看看我們的方法是否有效!我用來測試算法的數(shù)據(jù)集是Oxford-IIIT Pet Dataset(http://www.robots.ox.ac.uk/~vgg/data/pets/),有37只狗和貓品種。

 

 

完美的重復(fù)。該圖像在數(shù)據(jù)集中包含5次。

 

 

重復(fù)(一個有簽名)

 

 

相似但不重復(fù)

我還用計算機(jī)視覺中眾所周知的數(shù)據(jù)集CIFAR10測試了算法,看看我是否能找到一些重復(fù)數(shù)據(jù)。這些是我發(fā)現(xiàn)的一些例子:

 

 

完美復(fù)制

 

 

幾乎是一個重復(fù)的卡車,但有不同的標(biāo)志

 

 

不重復(fù),更像是數(shù)據(jù)擴(kuò)充

我還運(yùn)行了relabeler小部件,這是一個額外有趣的發(fā)現(xiàn):

 

 

不是卡車

一旦我們有網(wǎng)絡(luò)的重復(fù)建議,我們應(yīng)該怎么做?好吧,我們應(yīng)該選擇那些實(shí)際上是重復(fù)的并從我們的數(shù)據(jù)集中刪除它們,因?yàn)橹貜?fù)會導(dǎo)致網(wǎng)絡(luò)過于重視這些圖像。我們?nèi)绾屋p松刪除重復(fù)項(xiàng)?使用fastai的交互式小部件(https://github.com/fpingham/dataset-cleaner)非常容易!你可以通過運(yùn)行來試試:

來自fastai.widgets進(jìn)口*
ds,fns_idxs = DatasetFormatter.from_similars('learner')
ImageCleaner(ds,fns_idxs,duplicates = True)

課程中所提到的網(wǎng)址整理如下:

fastai庫:https://github.com/fastai/fastai

callbacks 功能:https://docs.fast.ai/callbacks.hooks.html

Pooling:http://deeplearning.stanford.edu/tutorial/supervised/Pooling/

Oxford-IIIT Pet Dataset:http://www.robots.ox.ac.uk/~vgg/data/pets/

fastai的交互式小部件:https://github.com/fpingham/dataset-cleaner

信息來源:https://towardsdatascience.com/how-to-build-an-image-duplicate-finder-f8714ddca9d2

標(biāo)簽: 代碼 互聯(lián)網(wǎng) 網(wǎng)絡(luò)

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請與原作者聯(lián)系。

上一篇:騰訊AI Lab詳解3大熱點(diǎn):模型壓縮、機(jī)器學(xué)習(xí)及最優(yōu)化算法

下一篇:斯坦福2018 AI指數(shù)報告出爐:DL職位需求兩年增長35倍