Harris的角點檢測和特征匹配

一.特征檢測(提取)

? ? ? ? 基于特征的圖像配準方法是圖像配準中最常見的方法之一。它不是直接利用圖像像素值,二十通過像素值導出的符號特征(如特征點、特征線、特征區域)來實現圖像配準,因此可以克服利用灰度信息進行圖像配準的缺點,主要體現在以下三個方面:(1)利用特征點而不是圖像灰度信息,大大減少了在匹配過程中的計算量;(2)特征點的匹配度量值相對位置變化比較敏感,可以提高匹配的精度;(3)特征點的提取過程可以減少噪聲的影響,對灰度變化、圖像形變以及遮擋等都有較好的適應能力。

? ? ? ?一類重要的點特征:角點(corner points),其定義主要有以下:

?

?

  1. ?局部窗口沿各方向移動,灰度均產生明顯變化的點? ? ??
  2. 圖像局部曲率突變的點
  3. 典型的角點檢測算法:Harris角點檢測、CSS角點檢測
  4. Harris角點檢測基本思想
    從圖像局部的小窗口觀察圖像特征,角點定義:窗口向任意方向的移動都導致圖像灰度的明顯變化(如下圖)

?

Harris檢測:數學表達

?

將圖像窗口平移[u,v]產生灰度變化E(u,v)

?

由泰勒展開,得:

?

利用角點響應函數:

?

判斷特征點是否為角點的依據:R只與M值有關,R為大數值正數時特征點為角點,R為大數值負數時為邊緣,R為小數值時為平坦區,如下圖:

尋找R位于一定閾值之上的局部最大值,去除偽角點。

Harris角點檢測流程:
1.通過高斯函數的導數對原始圖像進行卷積計算;圖像在水平方向和垂直方向的導數Ix和Iy;
2.計算對應這些梯度外積即(Ix2 、Iy2、IxIy)三個圖像如下圖:
4.使用高斯函數對以上圖像進行卷積濾波;
3.使用前面的公式計算角點響應函數R值;
5.對計算到的角點圖像進行局部極大值抑制。

?
  1. ?

二、特征描述?

?在檢測到特征(關鍵點)之后,我們必須匹配它們,也就是說,我們必須確定哪些特征來自于不同圖像中的對應位置。物體識別的核心問題是將同一目標在不同時間、不同分辨率、不同光照、不同位姿情況下所成的圖像相匹配。而為了進行匹配,我們首先要合理的表示圖像。

SIFT(Scale invariant feature transform)特征通過計算檢測到的關鍵點周圍16x16窗口內每一個像素的梯度得到。在這里我只是簡單的實現類似于SIFT特征描述子的特征描述方法,即我通過每4x4的四分之一象限,通過將加權梯度值加到直方圖八個方向區間中的一個,計算出一個梯度方向直方圖,因此在每一個特征點都會形成一個128維的非負值形成了一個原始版本的SIFT描述子向量如下圖,并且將其歸一化以減少對比度和增益的影響,最后為了使描述子對其他各種光度變化魯棒,再將這些值以0.2截尾,然后再歸一化到單位長度。

?

?

三、特征匹配

一旦我們從兩幅或者多幅圖像中提取到特征及其描述子后,下一步就是要在這些圖像之間建立一些初始特征之間的匹配。
匹配策略一:對前面提取到的兩幅圖像的128維特征描述子向量做歐式距離度量,最簡單的一個策略就是先設定一個閾值(最大距離),然后返回在這個閾值范圍之內的另外一個圖像中的所有匹配。
匹配策略二:做最近鄰匹配,即比較最近鄰距離和次近鄰距離的比值,即最近鄰比率(NNDR)。

匹配策略一的缺點是,如果閾值設得太高,就會產生誤報,也就是說會出現不正確的匹配。如果閾值設得太低,就會產生很多“漏報”,也就是說,很多正確的匹配被丟失。

固定閾值,最近鄰和最近鄰比率匹配。在固定閾值(虛線圓)下,描述子DA未能與DB匹配,DD錯誤地與DC和DE匹配。如果我們選擇最近鄰,DA和DE匹配。使用最近鄰比率(NNDR),小的NNDR(d1/d2)正確地將DA和DB匹配,大的NNDR(d1'/d2')正確地拒絕DD與DC、DE的匹配。

代碼如下:

https://download.csdn.net/download/pbymw8iwm/10659247

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/444705.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/444705.shtml
英文地址,請注明出處:http://en.pswp.cn/news/444705.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

開始入坑深度學習(DeepLearning)

現在游戲越來越難做,國家廣電總局審核越來越變態,國家各種打壓游戲,游戲產業也成為教育失敗的背鍋俠,所以本人現在開始做深度學習方向。 深度學習研究的熱潮持續高漲,各種開源深度學習框架也層出不窮,其中包括TensorFlow、Caffe、Keras、CNTK、Torch7、MXNet、Leaf、The…

PRML(4)--Chapter2(下)-非參數估計

PRML第二章下-非參數估計1.直方圖2. 核方法3. K近鄰概率密度建模-參數化方法-概率密度的形式一定,由數據集確定密度中的參數即可。 局限性–概率模型選的不對,不能夠描述數據模態 此時,介紹一下非參數方法–直方圖,核方法&#…

《盤點那些秀你一臉的秒天秒地算法》(1)

本系列堅持格式:1個抖機靈算法2個較簡單但是天秀的算法1個較難天秀算法。 bogo排序 Bogo排序(Bogo-sort),又被稱為猴子排序,是一種惡搞排序算法。 將元素隨機打亂,然后檢查其是否符合排列順序,若否,則繼續…

caffe安裝篇(一)

caffe我選擇使用ubuntu源碼安裝,所以先執行: sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev protobuf-compiler libhdf5-serial-dev sudo apt-get install -y libgflags-dev libgoogle-glog-dev liblmdb-dev prot…

caffe2安裝篇(三)通過docker安裝

用普通的安裝方式走了不少彎路,感覺還是用docker方便: 參考的是https://hub.docker.com/r/caffe2ai/caffe2/ Latest docker pull caffe2ai/caffe2 Comes with GPU support, CUDA 8.0, cuDNN 7, all options, and tutorial files. Uses Caffe2 v0.8.1. GPU images (for us…

《盤點那些秀你一臉的秒天秒地算法》(3)

斐波那契之美 斐波那契數列(Fibonacci sequence),又稱黃金分割數列、因數學家列昂納多斐波那契(Leonardoda Fibonacci)以兔子繁殖為例子而引入,故又稱為“兔子數列”。 這個數列就是1、1、2、3、5、8、13…

Linux(15)-

Linux下的編程開發

《盤點那些秀你一臉的秒天秒地算法》(4)

防止新手錯誤的神級代碼 #define ture true #define flase false #difine viod void #define mian main #define ; ; 以后有新手問題就把這幾行代碼給他就好啦。 不用額外空間交換兩個變量 a 5 b 8 #計算a和b兩個點到原點的距離之和,并且賦值給…

Linux(16)-

Vim編輯器的使用

php生成有復雜結構的excel文檔

以前都用PHPExcel等工具來生成Excel,但是我們有時候需要非常復雜的樣式,比如有合并單元格和拆分單元格,甚至有顏色,行間距之類的,這樣做起來很費勁,而且你如果使用插件,你也需要學習這里我們可以…

caffe2安裝篇(二) ubuntu16.04 安裝方法

caffe2 ubuntu16.04 安裝方法 Caffe2的安裝相比于caffe在安裝的時候更加簡便,略去了Makefile.config的各種配置,對于有無GPU以及各種可選庫例如opencv,anaconda的支持也更簡單。(其實你直接裝好庫以后make就好,以GPU為例,在make的時候,自動檢測你是否安裝了CUDA,若沒有…

為啥用redis解決會話呢?

什么是會話? 會話可簡單理解為:用戶開一個瀏覽器,點擊多個超鏈接,訪問服務器多個web資源,然后關閉瀏覽器,整個過程稱之為一個會話。 ?會話過程中要解決的一些問題? –每個用戶不可避免各自會…

推薦系統(5)-深度推薦模型-AutoRec、DeepCrossing、NeuralCF、PNN、WideDeep、FNN、DeepFM、NFM

GBDTLR1. AutoRec-20152. Deep Crossing-20163. NeuralCF-20164. PNN-20165. Wide&Deep-20166. Deep&Cross-20177.FM深度學習7.1 FNN-20167.2 DeepFM-20177.3 NFM-2017《深度學習/推薦系統》讀書筆記2016年開始,推薦系統和計算廣告全面進入深度學習時代。 &…

關于在安裝caffe2環境中遇到的坑整理(歡迎入坑討論)

1.ImportError: cannot import name caffe2_pb2 測試caffe2的pytorch環境是否正常的時候使用 root@lxsj-ThinkStation:~/pytorch# python Python 2.7.12 (default, Dec 4 2017, 14:50:18) [GCC 5.4.0 20160609] on linux2 Type "help", "copyright", &…

leetcode172. 階乘后的零 最快算法

給定一個整數 n,返回 n! 結果尾數中零的數量。 示例 1: 輸入: 3 輸出: 0 解釋: 3! 6, 尾數中沒有零。 示例 2: 輸入: 5 輸出: 1 解釋: 5! 120, 尾數中有 1 個零. 說明: 你算法的時間復雜度應為 O(log n) 。 思路:102*5,而因數中2一定比…

Win10 連接 Ubuntu16.04.3(通過Xdrp連接xfce4界面)

Win10 連接 Ubuntu16.04.3(通過Xdrp連接xfce4界面) sudo apt-get install xrdp sudo apt-get install vnc4server sudo apt-get install xubuntu-desktop echo "xfce4-session" >~/.xsession sudo apt-get install dconf editor sudo dconf editor(或者在搜索…

Linux(17)-

Make編譯機制,Configure

聽說你還在糾結自己沒訪問量?成不了“博客專家”?

一、提高瀏覽量的技巧 相信很多人都這么想過:“我文章寫的這么好,怎么就沒人看呢?”; 或者這樣想過:“這文章寫得明明比我爛很多,憑什么這么多瀏覽量?”; 雖然在我看來這是極其嚴…

推薦系統(6)-注意力機制+深度推薦模型、強化學習推薦系統

注意力機制深度推薦模型、強化學習推薦系統1.AFM -20172.DIN-20173.DIEN-20194. DRN-20181.AFM -2017 Attention factorization machines–浙江大學–基于模型結構的改進 引入注意力機制FM, 可視為NFM模型的改進。給特征交叉池化后的特征向量施加不同的注意力權重。…

Caffe安裝的坑整理

怎么說了,入了深度學習的坑,就要踩一踩才算你入門,這里我整理了我在安裝學習caffe自己遇到的坑: 1.Caffe-GPU編譯問題:nvcc fatal : Unsupported gpu architecture compute_20 仔細查看了一下 Makefile.config 中 CUDA_ARCH 設置未按規定設置: # CUDA architecture se…