新聞中心
構(gòu)建圖像搜索引擎并不是一件容易的任務(wù)。這里有幾個(gè)概念、工具、想法和技術(shù)需要實(shí)現(xiàn)。主要的圖像處理概念之一是逆圖像查詢r(jià)everse image querying(RIQ)。Google、Cloudera、Sumo Logic 和 Birst 等公司在使用逆圖像搜索中名列前茅。通過(guò)分析圖像和使用數(shù)據(jù)挖掘 RIQ 提供了很好的洞察分析能力。

站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到泗陽(yáng)網(wǎng)站設(shè)計(jì)與泗陽(yáng)網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都做網(wǎng)站、網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名申請(qǐng)、虛擬空間、企業(yè)郵箱。業(yè)務(wù)覆蓋泗陽(yáng)地區(qū)。
頂級(jí)公司與逆圖像搜索
有很多頂級(jí)的技術(shù)公司使用 RIQ 來(lái)取得了不錯(cuò)的收益。例如:在 2014 年 Pinterest 第一次帶來(lái)了視覺(jué)搜索。隨后在 2015 年發(fā)布了一份白皮書(shū),披露了其架構(gòu)。逆圖像搜索讓 Pinterest 獲得了時(shí)尚品的視覺(jué)特征,并可以顯示相似產(chǎn)品的推薦。
眾所周知,谷歌圖片使用逆圖像搜索允許用戶上傳一張圖片然后搜索相關(guān)聯(lián)的圖片。通過(guò)使用先進(jìn)的算法對(duì)提交的圖片進(jìn)行分析和數(shù)學(xué)建模,然后和谷歌數(shù)據(jù)庫(kù)中無(wú)數(shù)的其他圖片進(jìn)行比較得到相似的結(jié)果。
這是 OpenCV 2.4.9 特征比較報(bào)告一個(gè)圖表:
算法 & Python庫(kù)
在我們使用它工作之前,讓我們過(guò)一遍構(gòu)建圖像搜索引擎的 Python 庫(kù)的主要元素:
專利算法
尺度不變特征變換Scale-Invariant Feature Transform(SIFT)算法
- 帶有非自由功能的一個(gè)專利技術(shù),利用圖像識(shí)別符,以識(shí)別相似圖像,甚至那些來(lái)自不同的角度,大小,深度和尺度的圖片,也會(huì)被包括在搜索結(jié)果中。點(diǎn)擊這里查看 SIFT 詳細(xì)視頻。
- SIFT 能與從許多圖片中提取了特征的大型數(shù)據(jù)庫(kù)正確地匹配搜索條件。
- 能匹配不同視角的相同圖像和匹配不變特征來(lái)獲得搜索結(jié)果是 SIFT 的另一個(gè)特征。了解更多關(guān)于尺度不變關(guān)鍵點(diǎn)。
加速魯棒特征Speeded Up Robust Features(SURF)算法
- SURF 也是一種帶有非自由功能的專利技術(shù),而且還是一種“加速”的 SIFT 版本。不像 SIFT,SURF 接近于帶有箱式過(guò)濾器Box Filter的高斯拉普拉斯算子Laplacian of Gaussian。
- SURF 依賴于黑塞矩陣Hessian Matrix的位置和尺度。
- 在許多應(yīng)用中,旋轉(zhuǎn)不變性不是一個(gè)必要條件,所以不按這個(gè)方向查找加速了處理。
- SURF 包括了幾種特性,提升了每一步的速度。SIFT 在旋轉(zhuǎn)和模糊化方面做的很好,比 SIFT 的速度快三倍。然而它不擅長(zhǎng)處理照明和變換視角。
- OpenCV 程序功能庫(kù)提供了 SURF 功能,SURF.compute() 和 SURF.Detect() 可以用來(lái)找到描述符和要點(diǎn)。閱讀更多關(guān)于SURF點(diǎn)擊這里
開(kāi)源算法
KAZE 算法
- KAZE是一個(gè)開(kāi)源的非線性尺度空間的二維多尺度和新的特征檢測(cè)和描述算法。在加性算子分裂Additive Operator Splitting(AOS)和可變電導(dǎo)擴(kuò)散中的有效技術(shù)被用來(lái)建立非線性尺度空間。
- 多尺度圖像處理的基本原理很簡(jiǎn)單:創(chuàng)建一個(gè)圖像的尺度空間,同時(shí)用正確的函數(shù)過(guò)濾原始圖像,以提高時(shí)間或尺度。
加速的 KAZEAccelerated-KAZE(AKAZE) 算法
- 顧名思義,這是一個(gè)更快的圖像搜索方式,它會(huì)在兩幅圖像之間找到匹配的關(guān)鍵點(diǎn)。AKAZE 使用二進(jìn)制描述符和非線性尺度空間來(lái)平衡精度和速度。
二進(jìn)制魯棒性不變尺度可變關(guān)鍵點(diǎn)Binary Robust Invariant Scalable Keypoints(BRISK)算法
- BRISK 非常適合關(guān)鍵點(diǎn)的描述、檢測(cè)與匹配。
- 是一種高度自適應(yīng)的算法,基于尺度空間 FAST 的快速檢測(cè)器和一個(gè)位字符串描述符,有助于顯著加快搜索。
- 尺度空間關(guān)鍵點(diǎn)檢測(cè)與關(guān)鍵點(diǎn)描述幫助優(yōu)化當(dāng)前相關(guān)任務(wù)的性能。
快速視網(wǎng)膜關(guān)鍵點(diǎn)Fast Retina Keypoint(FREAK)
- 這個(gè)新的關(guān)鍵點(diǎn)描述的靈感來(lái)自人的眼睛。通過(guò)圖像強(qiáng)度比能有效地計(jì)算一個(gè)二進(jìn)制串級(jí)聯(lián)。FREAK 算法相比 BRISK、SURF 和 SIFT 算法可以更快的計(jì)算與內(nèi)存負(fù)載較低。
定向 FAST 和旋轉(zhuǎn) BRIEFOriented FAST and Rotated BRIEF(ORB)
- 快速的二進(jìn)制描述符,ORB 具有抗噪聲和旋轉(zhuǎn)不變性。ORB 建立在 FAST 關(guān)鍵點(diǎn)檢測(cè)器和 BRIEF 描述符之上,有成本低、性能好的元素屬性。
- 除了快速和精確的定位元件,有效地計(jì)算定向的 BRIEF,分析變動(dòng)和面向 BRIEF 特點(diǎn)相關(guān),是另一個(gè) ORB 的特征。
Python庫(kù)
OpenCV
- OpenCV 支持學(xué)術(shù)和商業(yè)用途,它是一個(gè)開(kāi)源的機(jī)器學(xué)習(xí)和計(jì)算機(jī)視覺(jué)庫(kù),OpenCV 便于組織利用和修改代碼。
- 超過(guò) 2500 個(gè)優(yōu)化的算法,包括當(dāng)前最先進(jìn)的機(jī)器學(xué)習(xí)和計(jì)算機(jī)視覺(jué)算法服務(wù)與各種圖像搜索--人臉檢測(cè)、目標(biāo)識(shí)別、攝像機(jī)目標(biāo)跟蹤,從圖像數(shù)據(jù)庫(kù)中尋找類似圖像、眼球運(yùn)動(dòng)跟隨、風(fēng)景識(shí)別等。
- 像谷歌,IBM,雅虎,索尼,本田,微軟和英特爾這樣的大公司廣泛的使用 OpenCV。
- OpenCV 擁有 python,java,C,C++ 和 MATLAB 接口,同時(shí)支持 Windows,Linux,Mac OS 和 Android。
Python 圖像庫(kù) (PIL)
- Python 圖像庫(kù)(PIL)支持多種文件格式,同時(shí)提供圖像處理和圖形解決方案。開(kāi)源的 PIL 為你的 Python解釋器添加了圖像處理能力。
- 標(biāo)準(zhǔn)的圖像處理能力包括圖像增強(qiáng)、透明和遮罩處理、圖像過(guò)濾、像素操作等。
詳細(xì)的數(shù)據(jù)和圖表,請(qǐng)看這里的 OpenCV 2.4.9 特征比較報(bào)告。
構(gòu)建圖像搜索引擎
圖像搜索引擎可以從預(yù)置的圖像庫(kù)選擇相似的圖像。其中最受歡迎的是谷歌的著名的圖像搜索引擎。對(duì)于初學(xué)者來(lái)說(shuō),有不同的方法來(lái)建立這樣的系統(tǒng)。提幾個(gè)如下:
- 采用圖像提取、圖像描述提取、元數(shù)據(jù)提取和搜索結(jié)果提取,建立圖像搜索引擎。
- 定義你的圖像描述符,數(shù)據(jù)集索引,定義你的相似性度量,然后進(jìn)行搜索和排名。
- 選擇要搜索的圖像,選擇用于進(jìn)行搜索的目錄,搜索所有圖片的目錄,創(chuàng)建圖片特征索引,評(píng)估搜索圖片的相同特征,匹配搜索的圖片并獲得匹配的圖片。
我們的方法基本上從比較灰度版本的圖像,逐漸演變到復(fù)雜的特征匹配算法如 SIFT 和 SURF,最后采用的是開(kāi)源的解決方案 BRISK 。所有這些算法都提供了有效的結(jié)果,但在性能和延遲有細(xì)微變化。建立在這些算法上的引擎有許多應(yīng)用,如分析流行統(tǒng)計(jì)的圖形數(shù)據(jù),在圖形內(nèi)容中識(shí)別對(duì)象,等等。
舉例:一個(gè) IT 公司為其客戶建立了一個(gè)圖像搜索引擎。因此,如果如果搜索一個(gè)品牌的標(biāo)志圖像,所有相關(guān)的品牌形象也應(yīng)該顯示在搜索結(jié)果。所得到的結(jié)果也能夠被客戶用于分析,使他們能夠根據(jù)地理位置估計(jì)品牌知名度。但它還比較年輕,RIQ(反向圖像搜索)的潛力尚未被完全挖掘利用。
這就結(jié)束了我們的文章,使用 Python 構(gòu)建圖像搜索引擎。瀏覽我們的博客部分來(lái)查看最新的編程技術(shù)。
本文名稱:Python的高級(jí)圖像處理
當(dāng)前網(wǎng)址:http://www.dlmjj.cn/article/cceodsd.html


咨詢
建站咨詢
