從計算機視覺角度看處理器效能優化

2021-06-18 20:12:55 字數 2504 閱讀 8791

計算機視覺領域主要研究內容包括:影象分割,目標檢測,目標跟蹤,影象識別。

1. 影象分割在醫學影象處理,目標跟蹤和影象識別方面有重要應用,經常是影象理解的第一步,在時間的壓縮上有著巨大需求。 

3. 影象識別是計算機視覺方向當前最火的研究內容之一,由於經典的基於統計學習的框架需要處理海量資料,需要大規模的平行計算,離線訓練的時間往往讓一般企業難以承受。但是影象識別技術有著重要意義(參見下圖),近些年湧現出大批相關應用和產品,比如各大搜尋引擎公司都積極開發了基於內容的影象檢索和識別的產品,而對於一般方案的海量資料訓練時間,如果能夠有效地利用分布式計算,演算法優化,以及更好的提公升x86架構cpu和gpu的聯合運算都將是非常有價值的工作。

接下來主要從影象識別開始,簡述筆者對於計算機視覺領域的優化的任務的總結和思考: 

1.

識別正確率與影象資料和所建立的影象類別模型有關,前者即與所提取的image representation的判別性有關,進一步,

與所提取的local description和encoding完的描述子的判別性有關

;後者與所採用的數學模型有關,至於具體採用什麼模型,與前者encoding完的資料在高維空間中的相對位置關係有關(data drive)。

2.

影象理解是乙個大規模的資料平行計算過程,用到了大量的矩陣運算。可以優化的地方:

1)  

local feature descriptor的獲取

,這方面效果最好的是sift描述子,是十年來效果最好的,但是效率低,提取一副720*576的影象的特徵,可能需要幾秒鐘,當然提取的時間與影象梯度的複雜度正相關。09年,cvpr best demo 在這方面做了很漂亮的工作,他們將提取乙個點的時間減少到2.5毫秒。參看demo(同時,該實驗室也製作了iphone 應用omoby,識別效果我認為比google goggles 效果還要好。提公升特徵描述的時間,是影象理解的第一步,對於將影象資訊轉化為計

算機可識別資訊至關重要。

2) local descriptorre-encoding

由於區域性特徵描述繁雜無序,難以通過訓練得到有意義的模型。通過將其量化(建立碼書模型)得到統一的,可分的多維空間中的點,以便於通過訓練可以將這些模型區分開。

3) 對於

數學模型計算的優化

。基本上所有的判別式模型都可以歸結為是

凸優化問題如支援向量機svm

,面臨大量的數值計算。模型計算過程一般是離線過程。

這裡有乙個很好的講座:

(kaiyu是nec美國研究院的研究員,在09年的voc中拿了classification組第一名。)

重申一下,這裡所介紹的最經典的基於統計學習的識別框架,近些年有一些科學家試圖跳出這個套路,提出了deep learning等演算法,可以參看文末給出的demo。   

3.   影象理解相關領域進行優化的價值:

2) 這些影象產品都面臨著計算效率的問題,即:影象特徵提取慢,數學模型離線訓練慢。這方面的優化具有非常有價值的意義。

3) 優化過程是否可以考慮:強化opencv和ipp(這兩者我估計在實際產品中用到的很多),cpu+gpu的聯合優化(由於是大規模的矩陣運算,有效地利用gpu是可行之路,即:opencl),針對特定演算法有效利用ia架構cpu優勢,分布式計算等。

對於智慧型監控來說,

實時性極為重要。但是detection, tracking, segmentation都是非常耗時的過程(比如採用單純粒子濾波進行單目標跟蹤,對於***影象,未優化的程式處理速度不超過15fps,使用效果更好的改進演算法,速度可能降至5fps),計算效率極大的阻礙了前沿技術在工程實際中的應用。

目前智慧型監控在國內和世界範圍內都是非常火的領域。國內海康威視,銀江科技等都是監控領域炙手可熱的公司,尤其是前者,他在這個領域世界排名大約第六,產品遍及國內各大城市街道,高速公路,大型工業企業。但是目前的主流監控市場是不斷的提公升監控的解析度,智慧型演算法很少被引入到實際產品中,很大一部分原因是因為演算法的複雜性。儘管一些海歸和博士建立了一些擁有自己演算法的智慧型監控系統公司,比如蓮花山研究院所辦的公司在這方面所作的嘗試。

智慧型監控是乙個非常有價值的領域,成長快,利潤高。

英特爾的優勢在於opencv中已經開發了大量前沿視覺演算法,這些在intel的cpu上都可以進行優化。

(四)  其他

下面是幾個關於有意思的demo:

表情識別: 

匹配:      

跟蹤:      

包括火焰識別,目標跟蹤等) 

內容識別: 

此外,還有兩個比較神奇的demo:

yi,ma老師的稀疏人臉識別: 

michal irani 的超分辨:

計算機原理簡述 處理器和彙編

構成計算機的硬體系統通常有 五大件 組成 輸入裝置 輸出裝置 儲存器 運算器和控制器。簡單來說,對於計算機,核心的組成就是cpu。從計算機產生到現在,其核心的作用一直都是計算 計算 計算。進行各種的資料運算。cpu屬於計算機的硬體部分,這裡就涉及到了電子的東西,也就是數位電路,簡單來說就是把電路給資...

微處理器 微型計算機 微型計算機系統

本人是學習微機的時候寫的筆記,不喜勿噴。是大規模積體電路的cpu,是微型計算機的核心。微處理器包含三個部分 算術邏輯部件 alu 用來執行基本的算術運算和邏輯運算 暫存器 register cpu中有多個暫存器,稱為cpu暫存器。用來存放運算元 中間結果以及儲存運算結果的狀態標誌等。控制器 cu 具...

計算機組成 更好的利用處理器 從輸入輸出看中斷

無i o技術 程式查詢i o 程式中斷方式 dma直接記憶體讀取 channel通道技術 通道則更為強大 ppu外圍處理機 功能接收 儲存cpu的i o控制命令 放在介面的控制暫存器 反應外設的工作狀態 如資料狀態 是否就緒 工作狀態 忙 空閒 訊號轉換 遮蔽掉外設的工作邏輯 時序等等 資料格式 碼...