當前位置:編程學習大全網 - 源碼下載 - 如何用Python和深度神經網絡尋找相似圖像

如何用Python和深度神經網絡尋找相似圖像

代碼

首先,讀入TuriCreate軟件包

import turicreate as tc

我們指定圖像所在的文件夾image,讓TuriCreate讀取所有的圖像文件,並且存儲到data數據框

data = tc.image_analysis.load_images('./image/')

我們來看看,data數據框的內容:

data

data包含兩列信息,第壹列是圖片的地址,第二列是圖片的長寬描述。

下面我們要求TuriCreate給數據框中每壹行添加壹個行號。這將作為圖片的標記,方便後面查找圖片時使用,並輸出查看data。

data = data.add_row_number()

data

下面,是重頭戲。我們讓TuriCreate根據輸入的圖片集合,建立圖像相似度判別模型。

model = tc.image_similarity.create(data)

這個語句執行起來,可能需要壹些時間。如果妳是第壹次使用TuriCreate,它可能還需要從網上下載壹些數據。請耐心等待。

經過或長或短的等待,模型已經成功建立。

下面,我們來嘗試給模型壹張圖片,讓TuriCreate幫我們從目前的圖片集合裏,挑出最為相似的10張來。

為了方便,我們就選擇第壹張圖片作為查詢輸入。

我們利用show()函數展示壹下這張圖片。

tc.Image(data[0]['path']).show()

下面我們來查詢,我們讓模型尋找出與這張圖片最相似的10張。

similar_images = model.query(data[0:1], k=10)

我們把結果存儲在了similar_images變量裏面,下面我們來看看其中都有哪些圖片。

similar_images

返回的結果壹***有10行。跟我們的要求壹致。

每壹行數據,包含4列。分別是:

查詢圖片的標記

獲得結果的標記

結果圖片與查詢圖片的距離

結果圖片與查詢圖片近似程度排序值

有了這些信息,我們就可以查看到底哪些圖片與輸入查詢圖片最為相似了。

註意其中的第壹張結果圖片,其實就是我們的輸入圖片本身。考慮它沒有意義。

我們提取全部結果圖片的標記(索引)值,忽略掉第壹張(自身)。

similar_image_index = similar_images['reference_label'][1:]

把上面9張圖片的標記在所有圖片的索引列表中過濾出來:

filtered_index = data['id'].apply(lambda x : x in similar_image_index)

filtered_index

驗證完畢以後,請執行以下語句。我們再次調用TuriCreate的explore()函數,展現相似度查詢結果圖片。

data[filtered_index].explore()

  • 上一篇:按摩俱樂部源代碼
  • 下一篇:vb獲取文件圖標
  • copyright 2024編程學習大全網