對於純新人,首先我們需要了解下什麼是雲端計算。所謂雲端計算,就是指通過網際網路,以按需服務的形式提供計算資源。這樣企業就無需自行採購、設定或管理資源,而且只需要為實際使用的資源付費。
通俗來講,就是將實體物理計算機提供的各種服務搬到了線上,這樣即使我們沒有實體電腦也能體驗和使用一些計算資源,比如:雲伺服器、雲資料庫、人工智慧相關服務等。
阿里雲端計算提供的熱門產品包括以下幾類:
在大型影象資料庫上,CBIR
(Content-Based Image Retrieval,基於內容的影象檢索) 技術用於檢索在視覺上具相似性的影象。它是計算機視覺中的一項基本任務,因為它與各種實際應用直接相關。CBIR
是通過分析視覺內容(顏色、紋理、形狀、物體等),在相簿中搜尋相關影象的問題。
影象檢索的通俗定義:從一堆圖片中找到與待匹配的影象相似的圖片,即以圖搜圖,影象檢索的一個子問題是以人搜人,也稱為行人重識別。
本文對 CBIR 和影象檢索、影象檢索的定義不做嚴格區分,都指代影象檢索技術。
通常,CBIR 方法可以分為兩個不同的任務:
類別級影象檢索(CIR),也叫相同類別物體檢索。
對給定的查詢圖片,相似影象檢索的目標是從影象庫中查詢出那些與給定查詢影象屬於同一類別(例如,狗,汽車)的影象。
範例級影象檢索(IIR),也叫相同物體影象檢索。
相同物體影象檢索是指對查詢影象中的某一物體,從影象庫中找出包含有該物體的影象。一個特定範例(例如,埃菲爾鐵塔,我的鄰居的狗)的查詢影象可以在不同的條件下被捕獲,如不同的成像距離、視角、背景、光照和天氣條件(重新識別同一範例的範例)。
關於臉部辨識問題和影象檢索問題的關係,我個人理解是臉部辨識可以看作是一種更嚴格的相同物體影象檢索問題。
影象檢索任務另外一種分類劃分:
追求所謂的相似性,即從影象資料庫中找到相似或相同的圖片。
常見的臉部辨識,行人重識別(reid),購物商品檢索,草圖檢索,都是屬於這個範疇,目前的深度學習方法,更多的就是追求如何獲得更好的 feature,在這些領域,特徵提取方法都是可以通用,即 backbone 是通用的。
傳統領域裡的 match 的問題。即如果某個建築在一張圖裡出現,假使其在另外一張圖裡只出現一半,或者在某個角落裡出現,能否再次找到。
如果直接採用 cnn 特徵,很有可能找到的輪廓相似的建築物,而非相同的建築物。這種情況下,一般是切成 patch 再分別抽特徵,隨著目標檢測模型的進步,可以直接在最後的 feautre map 上直接劃分。也可以對 feature map 的特徵做 vlad(Vector of Local Aggregated Descriptors)或者 fv(Fisher Vector)的編碼再檢索。一般論文裡的標題都是 CBIR,instance retrieval 這種。
FV(Fisher Vector)10 本質上是用似然函數的梯度向量表示一幅影象。梯度向量的物理意義就是描述能夠使模型更好地適應資料的引數變化方向,也就是資料擬閤中引數調優的過程。
傳統影象處理中影象特徵分為:全域性特徵(顏色、紋理、形狀)和區域性特徵(SIFT和 SURF描述符)兩類。
影象檢索(也叫以圖搜圖)技術等發展大致經歷了三個階段:
最初的影象檢索引擎是基於文字關鍵字檢索的。
即利用影象的檔名和路徑名、影象周圍的文字,以及Alt標籤中的註釋索引和搜尋相關影象的。從本質上來說,這樣的影象檢索引擎其實還是基於文字搜尋引擎的,因為對比的是文字資訊而不是直接影象資訊。
1992年,T. Kato提出了基於內容的影象檢索(CBIR)概念,即人工提取影象特徵構建索引以實現影象檢索。
首先基於傳統影象處理技術(如SIFT特徵提取運算元)進行特徵提取,然後將影象特徵資訊進行編碼,並將海量影象編碼做查詢表,最後進行相似度匹配運算。
基於計算機視覺技術的影象檢索技術。
隨著人工智慧技術(深度學習)的發展,CNN 和 Transformer 技術在自動提取影象特徵方面已經做得非常優秀,因此極大地提高了影象表達和搜尋的準確性。目前主流搜尋引擎的影象檢索功能其實都引入了深度學習演演算法。
從 paperswithcode 可以看出影象檢索領域最新的 SOTA 模型-X-VLM 是在 2021 年發表的,後續沒有更好的論文。
影象檢索演演算法流程的 pipeline
如下所示:
注意,上述步驟中,圖片入庫是使用者看不到的。影象特徵相似度的度量標準一般有以下幾類:
影象搜尋(Image Search)是一款用於圖片間相似性檢索的平臺型產品。影象搜尋以深度學習和機器視覺為核心,提取圖片內容特徵、建立影象搜尋引擎。使用者通過輸入圖片,用以圖搜圖的方式可快速在圖片庫中檢索到與輸入圖片相似的圖片集合。可廣泛應用於拍照購物、商品推薦、版權保護等場景。
阿里雲的影象搜尋(ImageSearch)產品主要用來實現搜尋相似圖片功能,其簡單使用過程總結如下:
2,第二步,在範例中新增等待搜尋的圖片
點選範例 ID 進入範例詳情頁面,選擇圖片搜尋,確定搜尋型別、上傳圖片並輸入相關設定後,點選確認即可得到 json
形式的字串返回結果。
3,第三步,解析字串形式的返回結果
參考教學-圖片查詢,理解各個引數的含義,從而得到易理解的圖片搜尋結果。這裡我輸入的是樹莓派3B的圖片,返回結果如下所示:
{
"data": {
"result": {
"body": {
"auctions": [],
"code": 0,
"head": {
"docsFound": 0,
"docsReturn": 0,
"searchTime": 225
},
"picInfo": {
"allCategories": [
{
"id": 0,
"name": "Tops"
},
{
"id": 1,
"name": "Dress"
},
{
"id": 2,
"name": "Bottoms"
},
{
"id": 3,
"name": "Bag"
},
{
"id": 4,
"name": "Shoes"
},
{
"id": 5,
"name": "Accessories"
},
{
"id": 6,
"name": "Snack"
},
{
"id": 7,
"name": "Makeup"
},
{
"id": 8,
"name": "Bottle"
},
{
"id": 9,
"name": "Furniture"
},
{
"id": 20,
"name": "Toy"
},
{
"id": 21,
"name": "Underwear"
},
{
"id": 22,
"name": "Digital device"
},
{
"id": 88888888,
"name": "Other"
}
],
"categoryId": 22,
"multiRegion": [
{
"region": "282,1973,180,1282"
}
],
"region": "282,1973,180,1282"
},
"requestId": "EAD5F8B7-2BAB-52F5-89D6-AE2F16569E2E",
"success": true
},
"headers": {
"access-control-allow-origin": "*",
"date": "Tue, 07 Feb 2023 12:47:36 GMT",
"content-length": "635",
"x-acs-request-id": "EAD5F8B7-2BAB-52F5-89D6-AE2F16569E2E",
"connection": "keep-alive",
"content-type": "application/json;charset=utf-8",
"x-acs-trace-id": "e52901da46aa5e61a2243a1109cf0a93"
},
"statusCode": 200
}
},
"success": true
}
"categoryId": 22
,參考類目參考頁面,可知 "categoryId": 22 表示屬於數碼硬體類別,識別正確!
到這裡,關於影象搜尋產品的背景、原理和使用過程都已經敘述完畢了,個人感覺影象搜尋這款產品的識別準確率還不錯,但是返回結果的視覺化功能還有待提升,目前是純 json
形式的字串返回結果,不如直接圖片上新增文字和方框形式的返回結果直觀。
版權宣告 ©
本文作者:嵌入式視覺
本文連結:https://www.cnblogs.com/armcvai/p/17099809.html
版權宣告:本文為「嵌入式視覺」的原創文章,首發於 github ,遵循 CC BY-NC-ND 4.0 版權協定,著作權歸作者所有,轉載請註明出處!
鼓勵博主:如果您覺得文章對您有所幫助,可以點選文章右下角【推薦】一下。您的鼓勵就是博主最大的動力!