導航:首頁 > 源碼編譯 > 計算機視覺方面的演算法

計算機視覺方面的演算法

發布時間:2023-02-19 21:50:34

㈠ 計算機視覺中演算法 RANSAC

RANSAC 主要是用於處理 外點數 (outline) 比較多情況下來搜索一條直線或進行模型參數擬合。從 RANSAC 全名字面意思是隨機采樣一致性。是一種非常簡單且有效估計模型參數的方法。不僅限於直線模型的參數,在 SLAM 通過對比前後量幀圖像上特徵點間關系可以計算出攝像機的外參數,從而計算運動軌跡並生成稀疏點雲。

對於RANSAC演算法來說一個基本的假設就是數據是由 內點 外點 組成的。

同時 RANSAC 假設:在給定一組含有少部分 內點 的數據,存在一個程序可以估計出符合 內點 的模型。

通常會有如下幾個步驟

如圖

到此算完成一次迭代,重復上面的迭代記錄小每次迭代選擇點後繪制所得到的投票數,投票數最大所對應的直線模型就是我們要找到的直線

從上面求解過程,可以發現迭代次數 N 和內點率 t 或者理解為外點率 e 都可以這些參數確定是比較困難的,可以感覺經驗進行來設置這些參數,

通常我們還會設定一個閾值,這個閾值是關於投票數的閾值,也就是最少投票數值,計算出直線中投票數最大的直線的投票數量還需要大於這個最少投票數才可以。其實 RANSAC 輸出一個一條投票數最多且大於事先設定好閾值的直線模型參數,也可以是多條投票數大於最小投票(閾值)的多條直線。

通常我們對這些點的外點率是一無所知的,那麼在這種情況下應該如何處理呢?
首先將迭代次數 N 設置無窮大,因為現在對外點率一無所知,所以也就沒辦法設置 N。所以真實迭代次數 sample_count 通常都會比 N 小

接下來就是將 sample_count 增加 1 然後重復上面步驟,在下一次迭代中 N 就不再是無窮大而是用 N1 來 如果在下一次迭代中計算 d 內點數量要比上一次高就保留本次 d 以及計算得到 N1 而舍棄上一次的計算得到 N1 。

圖像配准就是找到一幅圖像像素到另一幅圖像像素間的空間映射關系。這些圖像可以是不同時間(多時間配准),不同感測器在不同地方拍攝(多模式配准)。這些圖像之間的空間關系可以是剛性 (平移和旋轉),仿射(例如剪切),單應性(或復雜的大變形模型)。

這是一個三維重建必用的演算法,如果在三維重建不用 RANSAC 就說明你做的還不算好。幫助我們排序一些噪音點還是outline 的點。我們以擬合直線為例講解 RANSAC 我們隨機地挑選兩個點作為模型,然後看有多少點 inline,我們在隨意找兩個點來作為模型,我們通過評估(投票形式)來找出最優模型,但是這本模型並不是最優模型而是我們要,隨意選擇最少 x 個樣本,x 個數取決於你要擬合模型,如果是直線就是 2 個點,平面需要3 點。然後計算有多少點和模型擬合。直到找到一個模型其中 inline 樣本點是最多的。然後在擬合一次就可以得到我們想要點。

㈡ 計算機視覺中,目前有哪些經典的目標檢測演算法

第一章介紹運動的分類、計算機視覺領域中運動分析模型、計算機視覺領域運動檢測和目標跟蹤技術研究現狀、計算機視覺領域中運動分析技術的難點等內容;
第二章介紹傳統的運動檢測和目標跟蹤演算法,包括背景差分法、幀間差分法、光流場評估演算法等;
第三章介紹具有周期性運動特徵的低速目標運動檢測和跟蹤演算法,並以CCD測量系統為例介紹該演算法的應用;
第四章介紹高速運動目標識別和跟蹤演算法,並以激光通信十信標光捕獲和跟蹤系統為例介紹該演算法的應用;
第五章介紹具有復雜背景的目標運動檢測過程中採用的光流場演算法,包括正規化相關的特性及其改進光流場評估演算法,並介紹改進光流場演算法的具體應用;
第六章介紹互補投票法實現可信賴運動向量估計。

㈢ cv演算法是什麼呀

cv演算法是計算機視覺演算法。是一門研究如何使機器「看」的科學,更進一步的說,就是是指用攝影機和電腦代替人眼對目標進行識別、跟蹤和測量等機器視覺,並進一步做圖形處理,使電腦處理成為更適合人眼觀察或傳送給儀器檢測的圖像。

作為一個科學學科,計算機視覺研究相關的理論和技術,試圖建立能夠從圖像或者多維數據中獲取『信息』的人工智慧系統。這里所 指的信息指Shannon定義的,可以用來幫助做一個「決定」的信息。

定義:

計算機視覺是使用計算機及相關設備對生物視覺的一種模擬。它的主要任務就是通過對採集的圖片或視頻進行處理以獲得相應場景的三維信息,就像人類和許多其他類生物每天所做的那樣。

計算機視覺是一門關於如何運用照相機和計算機來獲取我們所需的,被拍攝對象的數據與信息的學問。形象地說,就是給計算機安裝上眼睛(照相機)和大腦(演算法),讓計算機能夠感知環境。

我們中國人的成語"眼見為實"和西方人常說的"One picture is worth ten thousand words"表達了視覺對人類的重要性。不難想像,具有視覺的機器的應用前景能有多麼地寬廣。

㈣ 計算機視覺中,目前有哪些經典的目標跟蹤演算法

benchmark 2015版:Visual Tracker Benchmark 不過這些演算法都比較新 要看老的話主要是06年這篇paper http://crcv.ucf.e/papers/Object%20Tracking.pdf 和09年有一篇暫時忘記paper名字了
古老的方法比如optical flow,kalman filter(後面的particle filter)……了解不多不瞎扯了

目前tracking主要是兩種,discriminative 和 generative,當然也有combine兩個的比如SCM。你提到的都是前者,就是演算法裡面基本有一個classifier可以分辨要追蹤的物體。這類除了你說的最近比較火的還有速度極占優勢的CSK(後來進化成KCF/DCF了)
另一種generative的方法,大致就是用模版(或者sparse code)抽一堆feature,按距離函數來匹配。L1,ASLA,LOT,MTT都是。

最近才開始了解tracking,所以說得可能並不是很對,僅供參考

㈤ cv演算法是什麼

計算機視覺演算法。

計算機視覺是一門研究如何使機器「看」的科學,更進一步的說,就是是指用攝影機和電腦代替人眼對目標進行識別、跟蹤和測量等機器視覺,並進一步做圖形處理,使電腦處理成為更適合人眼觀察或傳送給儀器檢測的圖像。

作為一個科學學科,計算機視覺研究相關的理論和技術,試圖建立能夠從圖像或者多維數據中獲取『信息』的人工智慧系統。這里所 指的信息指Shannon定義的,可以用來幫助做一個「決定」的信息。

因為感知可以看作是從感官信號中提 取信息,所以計算機視覺也可以看作是研究如何使人工系統從圖像或多維數據中「感知」的科學。

計算機視覺應用的實例包括用於系統:

(1)控制過程,比如,一個工業機器人 。

(2)導航,例如,通過自主汽車或移動機器人。

(3)檢測的事件,如,對視頻監控和人數統計。

(4)組織信息,例如,對於圖像和圖像序列的索引資料庫。

(5)造型對象或環境,如,醫學圖像分析系統或地形模型。

(6)相互作用,例如,當輸入到一個裝置,用於計算機人的交互。

(7)自動檢測,例如,在製造業的應用程序。

㈥ 計算機視覺中,目前有哪些經典的目標跟蹤演算法

計算機視覺中,目前有哪些經典的目標跟蹤演算法 比如TLD、CT、Struct這些效果不錯的Tracker其實都不是單純的Tracker了。09年的時候我記得比較流行的是Particle Filtering, 或者一些MeanShift/CamSh

㈦ 計算機視覺——典型的目標檢測演算法(OverFeat演算法)(二)

【嵌牛導讀】目標檢測在現實中的應用很廣泛,我們需要檢測數字圖像中的物體位置以及類別,它需要我們構建一個模型,模型的輸入一張圖片,模型的輸出需要圈出圖片中所有物體的位置以及物體所屬的類別。在深度學習浪潮到來之前,目標檢測精度的進步十分緩慢,靠傳統依靠手工特徵的方法來提高精度已是相當困難的事。而ImageNet分類大賽出現的卷積神經網路(CNN)——AlexNet所展現的強大性能,吸引著學者們將CNN遷移到了其他的任務,這也包括著目標檢測任務,近年來,出現了很多目標檢測演算法。

【嵌牛鼻子】計算機視覺

【嵌牛提問】如何理解目標檢測演算法——OverFeat

【嵌牛正文】

一、深度學習的典型目標檢測演算法

深度學習目標檢測演算法主要分為 雙階段檢測演算法 和 單階段檢測演算法 ,如圖1所示。

雙階段目標檢測演算法先對圖像提取候選框,然後基於候選區域做二次修正得到檢測結果,檢測精度較高,但檢測速度較慢;單階段目標驗測演算法直接對圖像進行計算生成檢測結果,檢測速度快,但檢測精度低。

1、雙階段目標檢測演算法

雙階段目標檢測方法主要通過選擇性搜索(Selective Search)或者Edge Boxes等演算法對輸入圖像選取可能包含檢測目標的候選區域(Region Proposal),再對候選區域進行分類和位置回歸以得到檢測結果。

1.1 OverFeat 演算法

《OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks》

Sermanet 等改進AlexNet 提出 OverFeat 演算法。該演算法結合AlexNet通過多尺度滑動窗口實現特徵提取功能,並且共享特徵提取層,應用於圖像分類、定位和目標檢測等任務。

關鍵技術:

1、FCN( 全卷積神經網路 )

對於一個各層參數結構都設計好的網路模型,要求輸入圖片的尺寸是固定的(例如,Alexnet要求輸入圖片的尺寸為227px*227px)。如果輸入一張500*500的圖片,希望模型仍然可以一直前向傳導,即一個已經設計完畢的網路,可以輸入任意大小的圖片,這就是FCN。

FCN的思想在於:

1、從卷積層到全連接層,看成是對一整張圖片的卷積層運算。

2、從全連接層到全連接層,看成是採用1*1大小的卷積核,進行卷積層運算。

如上圖所示,綠色部分代表卷積核大小。假設一個CNN模型,其輸入圖片大小是14*14,通過第一層卷積後得到10*10大小的圖片,然後接著通過池化得到了5*5大小的圖片。像但是對於像素值為5*5的圖片到像素值為1*1的圖片的過程中:

(1)傳統的CNN:如果從以前的角度進行理解的話,那麼這個過程就是全連接層,我們會把這個5*5大小的圖片,展平成為一維向量進行計算。

(2)FCN:FCN並不是把5*5的圖片展平成一維向量再進行計算,而是直接採用5*5的卷積核,對一整張圖片進行卷積運算。

二者本質上是相同的,只是角度不同,FCN把這個過程當成了對一整張特徵圖進行卷積,同樣,後面的全連接層也是把它當做是以1*1大小的卷積核進行卷積運算。

當輸入一張任意大小的圖片,就需要利用以上所述的網路,例如輸入一張像素為16*16的圖片:

根據上圖,該網路最後的輸出是一張2*2的圖片。可見採用FCN網路可以輸入任意大小的圖片。同時需要注意的是網路最後輸出的圖片大小不在是一個1*1大小的圖片,而是一個與輸入圖片大小息息相關的一張圖片。

Overfeat就是把採用FCN的思想把全連接層看成了卷積層,在網路測試階段可以輸入任意大小的圖片。

2、offset max-pooling

簡單起見,不用二維的圖像作為例子,而是採用一維作為示例:

如上圖所示,在X軸上有20個神經元,並且選擇池化size=3的非重疊池化,那麼根據之前所學的方法應該是:對上面的20個神經元,從1位置開始進行分組,每3個連續的神經元為一組,然後計算每組的最大值(最大池化),19、20號神經元將被丟棄,如下圖所示:

或者可以在20號神經元後面,添加一個數值為0的神經元編號21,與19、20成為一組,這樣可以分成7組:[1,2,3],[4,5,6]……,

[16,17,18],[19,20,21],最後計算每組的最大值。

如果只分6組,除了以1作為初始位置進行連續組合之外,也可以從位置2或者3開始進行組合。也就是說其實有3種池化組合方法:

A、△=0分組:[1,2,3],[4,5,6]……,[16,17,18];

B、△=1分組:[2,3,4],[5,6,7]……,[17,18,19];

C、△=2分組:[3,4,5],[6,7,8]……,[18,19,20];

對應圖片如下:

以往的CNN中,一般只用△=0的情況,得到池化結果後,就送入了下一層。但是該文獻的方法是,把上面的△=0、△=1、△=2的三種組合方式的池化結果,分別送入網路的下一層。這樣的話,網路在最後輸出的時候,就會出現3種預測結果了。

前面所述是一維的情況,如果是2維圖片的話,那麼(△x,△y)就會有9種取值情況(3*3);如果我們在做圖片分類的時候,在網路的某一個池化層加入了這種offset 池化方法,然後把這9種池化結果,分別送入後面的網路層,最後的圖片分類輸出結果就可以得到9個預測結果(每個類別都可以得到9種概率值,然後我們對每個類別的9種概率,取其最大值,做為此類別的預測概率值)。

演算法原理:

文獻中的演算法,就是把這兩種思想結合起來,形成了文獻最後測試階段的演算法。

1、論文的網路架構與訓練階段

(1)網路架構

對於網路的結構,文獻給出了兩個版本——快速版、精確版,一個精度比較高但速度慢;另外一個精度雖然低但是速度快。下面是高精度版本的網路結構表相關參數:

表格參數說明:

網路輸入:圖片大小為221px*221px;

網路結構方面基本上和AlexNet相同,使用了ReLU激活,最大池化。不同之處在於:(a)作者沒有使用局部響應歸一化層;(b)然後也沒有採用重疊池化的方法;(c)在第一層卷積層,stride作者是選擇了2,這個與AlexNet不同(AlexNet選擇的跨步是4,在網路中,如果stride選擇比較大得話,雖然可以減少網路層數,提高速度,但是卻會降低精度)。

需要注意的是把f7這一層,看成是卷積核大小為5*5的卷積層,總之就是需要把網路看成前面所述的FCN模型,去除了全連接層的概念,因為在測試階段可不是僅僅輸入221*221這樣大小的圖片,在測試階段要輸入各種大小的圖片,具體請看後面測試階段的講解。

(2)網路訓練

訓練輸入:對於每張原圖片為256*256,然後進行隨機裁剪為221*221的大小作為CNN輸入,進行訓練。

優化求解參數設置:訓練的min-batchs選擇128,權重初始化選擇高斯分布的隨機初始化:

然後採用隨機梯度下降法,進行優化更新,動量項參數大小選擇0.6,L2權重衰減系數大小選擇10-5次方。學習率初始化值為0.05,根據迭代次數的增加,每隔幾十次的迭代後,就把學習率的大小減小一半。

然後就是DropOut,這個只有在最後的兩個全連接層,才採用dropout,dropout比率選擇0.5。

2、網路測試階段

在Alexnet的文獻中,預測方法是輸入一張圖片256*256,然後進行multi-view裁剪,也就是從圖片的四個角進行裁剪,還有就是一圖片的中心進行裁剪,這樣可以裁剪到5張224*224的圖片。然後把原圖片水平翻轉一下,再用同樣的方式進行裁剪,又可以裁剪到5張圖片。把這10張圖片作為輸入,分別進行預測分類,在後在softmax的最後一層,求取個各類的總概率,求取平均值。

然而Alexnet這種預測方法存在兩個問題:

一方面這樣的裁剪方式,把圖片的很多區域都給忽略了,這樣的裁剪方式,剛好把圖片物體的一部分給裁剪掉了;

另一方面,裁剪窗口重疊存在很多冗餘的計算,像上面要分別把10張圖片送入網路,可見測試階段的計算量還是較大的。

Overfeat演算法:

訓練完上面所說的網路之後,在測試階段不再是用一張221*221大小的圖片了作為網路的輸入,而是用了6張大小都不相同的圖片,也就是所謂的多尺度輸入預測,如下表格所示:

當網路前向傳導到layer 5的時候,就利用了前面所述的FCN、offset pooling這兩種思想的相結合。現以輸入一張圖片為例(6張圖片的計算方法都相同),講解layer 5後面的整體過程,具體流程示意圖如下:

步驟一:

對於某個尺度的圖片,經過前五層的卷積後得到特徵圖。上圖中特徵圖的解析度是20x23,256個通道。

步驟二:

對於該特徵圖,重復多次使用非重疊的池化,每次池化的偏置不同,有行偏置和列偏置。上圖中偏置池化3次,偏置分別為為(0,1,2)。這就是offset pooling,也被稱為fine stride。offset pooling得到的特徵圖的維度為6x7x3x3xD,其中6x7是特徵圖的解析度,3x3是偏置池化的次數,D是通道數。上圖中是以1維顯示的。

步驟三:

池化後得到的特徵圖將被送入分類器。

步驟四:

分類器的輸入是的5x5xD,輸出是C(類別數)維向量。但是offset pooling後得到的特徵圖並不是5x5xD,比如上圖中的特徵圖大小為6x7xD,因此分類器以滑動窗口的方式應用在特徵圖上,每個滑動窗口經過分類器輸出一個C維向量。比如上圖中輸入的6x7xD的特徵圖最終得到2x3xC的輸出,其中2x3是滑動窗口的個數。

步驟五:

而2x3xC只是一組偏置池化的輸出,總的輸出為2x3x3x3xC,將輸出的張量reshape,得到6x9xC輸出張量。最終輸出分類張量為3d張量,即兩個解析度維度 x C維。

然後需要在後面把它們拉成一維向量,這樣在一個尺度上,可以得到一個C*N個預測值矩陣,每一列就表示圖片屬於某一類別的概率值,並且求取每一列的最大值,作為本尺度的每個類別的概率值。

最後一共用了6種不同尺度(文獻使用了12張,另外6張是水平翻轉的圖片)進行做預測,然後把這六種尺度結果再做一個平均,作為最最後的結果。

從上面過程可以看到整個網路分成兩部分:layer 1~5這五層稱之為特徵提取層;layer 6~output稱之為分類層。

六、定位任務

用於定位任務的時候,就把分類層(上面的layer 6~output)給重新設計一下,把分類改成回歸問題,然後在各種不同尺度上訓練預測物體的bounding box。

閱讀全文

與計算機視覺方面的演算法相關的資料

熱點內容
趣質貓app是什麼 瀏覽:59
皮帶壓縮機經常吸不上 瀏覽:201
西部隨行版怎樣加密 瀏覽:996
釘釘上如何壓縮圖片 瀏覽:924
cad輸入命令不顯示窗口 瀏覽:618
小米視頻加密之後怎麼看 瀏覽:76
超級程序員劉芳閱讀 瀏覽:832
顧家九爺在哪個app 瀏覽:820
我的世界怎麼在聯機大廳做伺服器 瀏覽:290
分手程序員 瀏覽:447
php將html導出為word 瀏覽:801
騰訊加密視頻能破解嗎 瀏覽:1007
反編譯後導入eclipse 瀏覽:948
買阿里雲伺服器有郵箱嗎 瀏覽:825
pdf卡片2004 瀏覽:309
e算量加密鎖檢測不到 瀏覽:777
python串口讀取數據類型 瀏覽:760
17年新款寶來壓縮機不跳 瀏覽:107
王者打著為什麼伺服器升級 瀏覽:847
aliyunlinux安裝 瀏覽:981