国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

算法畢業(yè)設計 深度學習圖像搜索算法-圖像搜索引擎(源碼分享)

這篇具有很好參考價值的文章主要介紹了算法畢業(yè)設計 深度學習圖像搜索算法-圖像搜索引擎(源碼分享)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

0 簡介

今天學長向大家分享一個畢業(yè)設計項目

畢業(yè)設計 深度學習圖像搜索算法-圖像搜索引擎(源碼分享)

項目運行效果:

畢業(yè)設計 深度學習圖像搜索算法-圖像搜索引擎

項目獲?。?/strong>

https://gitee.com/sinonfin/algorithm-sharing文章來源地址http://www.zghlxwxcb.cn/news/detail-772176.html

1 前言

圖像檢索:是從一堆圖片中找到與待匹配的圖像相似的圖片,就是以圖找圖。 網(wǎng)絡時代,隨著各種社交網(wǎng)絡的興起,網(wǎng)絡中圖片,視頻數(shù)據(jù)每天都以驚人的速度增長,逐漸形成強大的圖像檢索數(shù)據(jù)庫。針對這些具有豐富信息的海量圖片,如何有效地從巨大的圖像數(shù)據(jù)庫中檢索出用戶需要的圖片,成為信息檢索領(lǐng)域研究者感興趣的一個研究方向。

2 圖像檢索介紹

給定一個包含特定實例(例如特定目標、場景、建筑等)的查詢圖像,圖像檢索旨在從數(shù)據(jù)庫圖像中找到包含相同實例的圖像。但由于不同圖像的拍攝視角、光照、或遮擋情況不同,如何設計出能應對這些類內(nèi)差異的有效且高效的圖像檢索算法仍是一項研究難題。

算法畢業(yè)設計 深度學習圖像搜索算法-圖像搜索引擎(源碼分享),python

圖像檢索的典型流程 首先,設法從圖像中提取一個合適的圖像的表示向量。其次,對這些表示向量用歐式距離或余弦距離進行最近鄰搜索以找到相似的圖像。最后,可以使用一些后處理技術(shù)對檢索結(jié)果進行微調(diào)??梢钥闯?,決定一個圖像檢索算法性能的關(guān)鍵在于提取的圖像表示的好壞。

(1) 無監(jiān)督圖像檢索

無監(jiān)督圖像檢索旨在不借助其他監(jiān)督信息,只利用ImageNet預訓練模型作為固定的特征提取器來提取圖像表示。

直覺思路 由于深度全連接特征提供了對圖像內(nèi)容高層級的描述,且是“天然”的向量形式,一個直覺的思路是直接提取深度全連接特征作為圖像的表示向量。但是,由于全連接特征旨在進行圖像分類,缺乏對圖像細節(jié)的描述,該思路的檢索準確率一般。

利用深度卷積特征 由于深度卷積特征具有更好的細節(jié)信息,并且可以處理任意大小的圖像輸入,目前的主流方法是提取深度卷積特征,并通過加權(quán)全局求和匯合(sum-pooling)得到圖像的表示向量。其中,權(quán)重體現(xiàn)了不同位置特征的重要性,可以有空間方向權(quán)重和通道方向權(quán)重兩種形式。

CroW 深度卷積特征是一個分布式的表示。雖然一個神經(jīng)元的響應值對判斷對應區(qū)域是否包含目標用處不大,但如果多個神經(jīng)元同時有很大的響應值,那么該區(qū)域很有可能包含該目標。因此,CroW把特征圖沿通道方向相加,得到一張二維聚合圖,并將其歸一化并根號規(guī)范化的結(jié)果作為空間權(quán)重。CroW的通道權(quán)重根據(jù)特征圖的稀疏性定義,其類似于自然語言處理中TF-IDF特征中的IDF特征,用于提升不常出現(xiàn)但具有判別能力的特征。

Class weighted features 該方法試圖結(jié)合網(wǎng)絡的類別預測信息來使空間權(quán)重更具判別能力。具體來說,其利用CAM來獲取預訓練網(wǎng)絡中對應各類別的最具代表性區(qū)域的語義信息,進而將歸一化的CAM結(jié)果作為空間權(quán)重。

PWA PWA發(fā)現(xiàn),深度卷積特征的不同通道對應于目標不同部位的響應。因此,PWA選取一系列有判別能力的特征圖,將其歸一化之后的結(jié)果作為空間權(quán)重進行匯合,并將其結(jié)果級聯(lián)起來作為最終圖像表示。

算法畢業(yè)設計 深度學習圖像搜索算法-圖像搜索引擎(源碼分享),python

(2) 有監(jiān)督圖像檢索

算法畢業(yè)設計 深度學習圖像搜索算法-圖像搜索引擎(源碼分享),python

有監(jiān)督圖像檢索首先將ImageNet預訓練模型在一個額外的訓練數(shù)據(jù)集上進行微調(diào),之后再從這個微調(diào)過的模型中提取圖像表示。為了取得更好的效果,用于微調(diào)的訓練數(shù)據(jù)集通常和要用于檢索的數(shù)據(jù)集比較相似。此外,可以用候選區(qū)域網(wǎng)絡提取圖像中可能包含目標的前景區(qū)域。

孿生網(wǎng)絡(siamese network) 和人臉識別的思路類似,使用二元或三元(+±)輸入,訓練模型使相似樣本之間的距離盡可能小,而不相似樣本之間的距離盡可能大。

3 圖像檢索步驟

圖像檢索技術(shù)主要包含幾個步驟,分別為:

  • 輸入圖片

  • 特征提取

  • 度量學習

  • 重排序

  • 特征提?。杭磳D片數(shù)據(jù)進行降維,提取數(shù)據(jù)的判別性信息,一般將一張圖片降維為一個向量;

  • 度量學習:一般利用度量函數(shù),計算圖片特征之間的距離,作為loss,訓練特征提取網(wǎng)絡,使得相似圖片提取的特征相似,不同類的圖片提取的特征差異性較大。

  • 重排序:利用數(shù)據(jù)間的流形關(guān)系,對度量結(jié)果進行重新排序,從而得到更好的檢索結(jié)果。

算法畢業(yè)設計 深度學習圖像搜索算法-圖像搜索引擎(源碼分享),python

4 應用實例

學長在這做了個圖像檢索器的demo,效果如下

工程代碼:
算法畢業(yè)設計 深度學習圖像搜索算法-圖像搜索引擎(源碼分享),python

關(guān)鍵代碼:

# _*_ coding=utf-8 _*_
from math import sqrt
import cv2
import time
import os
import numpy as np
from scipy.stats.stats import  pearsonr
#配置項文件
import  pymysql
from config import *
from mysql_config import *
from utils import getColorVec, Bdistance

db = pymysql.connect(DB_addr, DB_user, DB_passwod, DB_name )

def query(filename):
    if filename=="":
        fileToProcess=input("輸入子文件夾中圖片的文件名")
    else:
        fileToProcess=filename
    #fileToProcess="45.jpg"
    if(not os.path.exists(FOLDER+fileToProcess)):
        raise RuntimeError("文件不存在")
    start_time=time.time()
    img=cv2.imread(FOLDER+fileToProcess)
    colorVec1=getColorVec(img)
    #流式游標處理
    conn = pymysql.connect(host=DB_addr, user=DB_user, passwd=DB_passwod, db=DB_name, port=3306,
                           charset='utf8', cursorclass = pymysql.cursors.SSCursor)
    leastNearRInFive=0

    Rlist=[]
    namelist=[]
    init_str="k"
    for one in range(0, MATCH_ITEM_NUM):
        Rlist.append(0)
        namelist.append(init_str)

    with conn.cursor() as cursor:
        cursor.execute("select name, featureValue from "+TABLE_NAME+" order by name")
        row=cursor.fetchone()
        count=1
        while row is not None:
            if row[0] == fileToProcess:
                row=cursor.fetchone()
                continue
            colorVec2=row[1].split(',')
            colorVec2=list(map(eval, colorVec2))
            R2=pearsonr(colorVec1, colorVec2)
            rela=R2[0]
            #R2=Bdistance(colorVec1, colorVec2)
            #rela=R2
            #忽略正負性
            #if abs(rela)>abs(leastNearRInFive):
            #考慮正負
            if rela>leastNearRInFive:
                index=0
                for one in Rlist:
                    if rela >one:
                        Rlist.insert(index, rela)
                        Rlist.pop(MATCH_ITEM_NUM)
                        namelist.insert(index, row[0])
                        namelist.pop(MATCH_ITEM_NUM)
                        leastNearRInFive=Rlist[MATCH_ITEM_NUM-1]
                        break
                    index+=1
            count+=1
            row=cursor.fetchone()
    end_time=time.time()
    time_cost=end_time-start_time
    print("spend ", time_cost, ' s')
    for one in range(0, MATCH_ITEM_NUM):
        print(namelist[one]+"\t\t"+str(float(Rlist[one])))


if __name__ == '__main__':
    #WriteDb()
    #exit()
    query("")

效果
算法畢業(yè)設計 深度學習圖像搜索算法-圖像搜索引擎(源碼分享),python
算法畢業(yè)設計 深度學習圖像搜索算法-圖像搜索引擎(源碼分享),python
算法畢業(yè)設計 深度學習圖像搜索算法-圖像搜索引擎(源碼分享),python
算法畢業(yè)設計 深度學習圖像搜索算法-圖像搜索引擎(源碼分享),python
項目運行效果:

畢業(yè)設計 深度學習圖像搜索算法-圖像搜索引擎

最后

項目獲?。?/strong>

https://gitee.com/sinonfin/algorithm-sharing

到了這里,關(guān)于算法畢業(yè)設計 深度學習圖像搜索算法-圖像搜索引擎(源碼分享)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務器費用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包