自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

用Python構(gòu)建圖片處理搜索引擎

開發(fā) 前端
眾所周知,Google圖片使用反向圖片搜索技術(shù),它允許用戶上傳一張圖片然后搜索相關(guān)的圖片。上傳的圖片通過算法分析,制作出一個數(shù)學(xué)模型,然后跟Google數(shù)據(jù)庫中成千上萬的圖片進行比較,直到找到匹配的或者相似的圖片。

 [[170068]]

***公司和反向圖片搜索

有很多***的科技公司把RIQ用得很好。例如,Pinterest 2014年***次實現(xiàn)視覺搜索。隨后2015年它發(fā)布了一個白皮書,揭示了視覺搜索的結(jié)構(gòu)。反向圖片搜索使得Pinterest能夠從時尚的東西中提取視覺元素,然后給消費者推薦類似的產(chǎn)品。

眾所周知,Google圖片使用反向圖片搜索技術(shù),它允許用戶上傳一張圖片然后搜索相關(guān)的圖片。上傳的圖片通過算法分析,制作出一個數(shù)學(xué)模型,然后跟Google數(shù)據(jù)庫中成千上萬的圖片進行比較,直到找到匹配的或者相似的圖片。

這是OpenCV2.4.9特性體驗報告的一張圖

 

特性體驗

 

算法和Python庫

在我們動手之前,讓我們大致看一下構(gòu)建一個圖片搜索需要哪些Python元素。

專利算法

SIFT(尺度不變特征變換)

使用圖像標(biāo)識符來識別相似圖像的沒有費用的專利技術(shù)。即使圖片的尺寸、角度、深度不同,這項技術(shù)還是能將內(nèi)容相似的圖片匹配成功。

SIFT以大量的從圖片中提取的特性作為搜索的標(biāo)準(zhǔn)。

能匹配相同物體從不同視角拍攝的圖片,能夠通過不變的特性進行搜索匹配。

SURF(加速魯棒特征)算法

SURF和SIFT一樣也是不收費的專利算法,可以說是加速版的SIFT。與SIFT不同的是,SURF使用盒過濾器近似高斯拉普拉斯算子。

SURF使用Hessian矩陣來判斷圖像的位置和大小。

在許多應(yīng)用中,旋轉(zhuǎn)不變性都不是一個必要條件,所以不用尋找方向的話算法速度會快很多。

SURF包含了幾個特性使得計算的每一個步驟都得到了速度上的提升。圖片經(jīng)過旋轉(zhuǎn)和模糊之后,SURF依舊工作的很好,而且比SIFT快3倍。不過在光源和視角變換方面SURF不太行。

OpenCV提供了SURF功能,SURF.compute和SURF.detect可以用來找到描述符和關(guān)鍵點。

開源算法

KAZE算法

KAZE是一個開源2D多尺度和新特性探測和描述算法,它運作于非線性尺度空間。添加劑算子分裂(AOS)的有效技術(shù)和可變熱導(dǎo)擴散被用來構(gòu)建非線性尺度空間。

多尺度圖像處理的基礎(chǔ)很簡單–構(gòu)建一個圖像的尺度空間,然后用一個函數(shù)處理圖像,增強圖像的尺度或者時間。

AKAZE(加速KAZE)算法

從名字可以猜到,這個算法更快,它能快速找到兩個圖片之間匹配的關(guān)鍵。AKAZE使用一個二進制描述符和非線性尺度空間來平衡準(zhǔn)確度和速度。

BRISK(二進制魯棒尺度不變關(guān)鍵點)算法

BRISK在探測和匹配描述符和關(guān)鍵點方面很棒。

這個算法適應(yīng)性很強的、尺度空間基于FAST的、使用bit-string描述符的探測器,它能夠顯著地加快搜索的速度。

尺度空間關(guān)鍵點探測和關(guān)鍵點描述有助于性能的優(yōu)化

FREAK(快速視網(wǎng)膜關(guān)鍵點)算法

這是一個由人眼啟發(fā)的新的關(guān)鍵點描述符。根據(jù)圖像強度的比較有效地計算出一個二進制級聯(lián)字符串。相比于BRISK, SURF 和 SIFT,F(xiàn)REAK計算更快,更省內(nèi)存。

ORB(原生的FAST和旋轉(zhuǎn)的BRIEF)

ORB是一個二進制描述符,它能夠抗噪聲并具有旋轉(zhuǎn)不變性。ORB基于FAST關(guān)鍵點探測和BRIEF描述符,這兩者共同造就了它的低消耗和高性能。

除了快速和準(zhǔn)確的方向組件,計算原生BRIEF,分析變化以及與原生BRIEF的關(guān)系,是ORB的另一大特色。

Python庫

OpenCV

OpenCF分學(xué)術(shù)使用版本和商用版本。作為一個開源機器學(xué)習(xí)和機器視覺庫,OpenCV使得各類機構(gòu)能夠很容易地基于OpenCV構(gòu)建自己的版本。

超過2500個優(yōu)化的算法,包含目前***進的機器學(xué)習(xí)和機器視覺算法,能夠處理各類需求:人臉檢測、物體鑒定、相機移動跟蹤、尋找相似圖片,眼球跟蹤,場景識別等。

***公司像Google, Yahoo, IBM, Sony, Honda, Microsoft 和 Intel 都大量使用OpenCV庫。

OpenCV使用Python, Java, C, C++ 和 MATLAB做編程接口,同時支持Windows, Linux, Mac OS 和 Android平臺。

Python Imaging Library(PIL)

PIL在做圖像及圖形處理的時候支持若干種語言格式,它使得你的Python能夠處理圖像。

圖像處理的標(biāo)準(zhǔn)流程包括圖像增強,透明度和屏蔽處理,圖像濾波,每像素的操作等。

構(gòu)建圖片搜索引擎

一個圖片搜索引擎能夠從已有的圖片中挑出相似的圖片,***的就是Google的圖片搜索引擎。對于新的圖片搜索引擎項目,有很多構(gòu)建的方法,這里列舉一些:

使用圖像提取,圖像描述提取,元數(shù)據(jù)提取和搜索結(jié)果提取,建立一個圖像搜索引擎。

定義你的圖像描述符,對數(shù)據(jù)集進行索引,定義你的相似讀矩陣,然后搜索并排名。

選擇要搜索的圖片,選擇已有圖片的文件夾,在文件夾中遍歷圖片,創(chuàng)建圖片特征索引,用相同的特征和要搜索的圖片進行匹配,獲取能夠匹配的圖片。

我們的做法是一開始匹配圖片的灰度版本,逐漸開始使用像SIFT 和 SURF這樣復(fù)雜的特征匹配算法,最終使用了開源的算法BRISK。這些算法都只需要很小的修改,就能給出有效的結(jié)果?;谶@些算法構(gòu)建一個圖像搜索引擎可以有很多應(yīng)用,例如分析圖像受歡迎程度,圖片內(nèi)物體的鑒定等等。

例子

一個IT公司需要為客戶構(gòu)建一個圖像搜索引擎,功能是一個品牌的Logo提交進去,與這個品牌相關(guān)的圖片都會顯示出來??蛻艨梢愿鶕?jù)搜索的結(jié)果,分析一個品牌在一個地區(qū)的受歡迎程度。這項技術(shù)還處于應(yīng)用的早期,RIQ的潛力還沒有完全被發(fā)覺出來。

責(zé)任編輯:趙寧寧 來源: 36大數(shù)據(jù)
相關(guān)推薦

2023-01-03 15:42:29

機器學(xué)習(xí)視頻搜索

2011-06-20 18:23:06

SEO

2010-03-10 09:28:41

Python標(biāo)準(zhǔn)庫

2012-08-15 10:02:50

搜索引擎

2017-08-07 08:15:31

搜索引擎倒排

2020-03-20 10:14:49

搜索引擎倒排索引

2022-10-08 09:13:18

搜索引擎?站

2012-09-07 13:22:21

搜索搜狗

2009-02-19 09:41:36

搜索引擎搜狐百度

2010-04-20 11:43:46

2018-06-24 08:53:42

Tomcat理搜索引擎爬蟲

2011-05-17 16:54:09

搜索引擎

2009-09-22 16:23:52

搜索引擎

2017-11-27 13:39:29

Python大數(shù)據(jù)搜索引擎

2015-08-17 10:34:30

2024-02-27 07:33:32

搜索引擎Rust模型

2019-07-10 13:17:07

大數(shù)據(jù)搜索代碼

2009-07-30 10:40:56

搜索引擎優(yōu)化網(wǎng)站

2023-02-08 10:45:23

2010-06-13 16:27:28

搜索引擎
點贊
收藏

51CTO技術(shù)棧公眾號