日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

用于角点检测的FAST算法

發布時間:2025/3/15 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用于角点检测的FAST算法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

使用FAST進行特征檢測

1.選擇圖像中是否要識別為興趣點的像素ppp,使其強度為IpI_pIp?
2.選擇適當的閾值ttt
3.考慮被測像素周圍有16個像素的圓圈。(見下圖)

4.現在,如果圓中存在一組(共16個像素)nnn個連續的像素,它們均比Ip+tI_p + tIp?+t亮,或者比Ip?tI_p-tIp??t都暗,則像素ppp是一個角。(在上圖中顯示為白色虛線)。n被選為12。
5.建議使用高速測試以排除大量的非角區域。此測試僅檢查1、9、5和13處的四個像素(如果第一個1和9太亮或太暗,則對其進行測試。如果是,則檢查5和13)。如果p是一個角,則其中至少三個必須全部比Ip+tI_p + tIp?+t亮或比Ip?tI_p-tIp??t暗。如果以上兩種情況都不是,則ppp不能為角。然后,可以通過檢查圓中的所有像素,將完整的分段測試標準應用于通過的候選項。該檢測器本身具有很高的性能,但有幾個缺點:
6.它不會拒絕n <12的候選對象。
7.像素的選擇不是最佳的,因為其效率取決于問題的順序和角落外觀的分布。
8.高速測試的結果被丟棄了。
9.彼此相鄰地檢測到多個特征。
機器學習的方法解決了前三點。使用非最大抑制來解決最后一個問題。
讓機器學習一個角檢測器

1.選擇一組圖像進行訓練(最好從目標應用程序域中進行訓練)
2.在每個圖像中運行FAST算法以查找特征點。
3.對于每個特征點,將其周圍的16個像素存儲為矢量。對所有圖像執行此操作以獲得特征向量P。
4.這16個像素中的每個像素(例如xxx)可以具有以下三種狀態之一:

1.取決于這些狀態,特征矢量PPP被細分為3個子集,PdP_dPd?, PsP_sPs?, PbP_bPb?
2.定義一個新的布爾變量KpK_pKp?,如果ppp是一個角,則為true,否則為false。
3.使用ID3算法(決策樹分類器)使用變量KpK_pKp?查詢每個子集,以獲取有關真實類的知識。它選擇x,該x通過KpK_pKp?的熵測得的有關候選像素是否為角的信息最多。
4.遞歸地將其應用于所有子集,直到其熵為零為止。
5.這樣創建的決策樹用于其他圖像的快速檢測。
非最大抑制

在相鄰位置檢測多個興趣點是另一個問題。通過使用非極大抑制來解決。

1.計算所有檢測到的特征點的得分函數VVVVVVppp與16個周圍像素值之間的絕對差之和。
2.考慮兩個相鄰的關鍵點并計算它們的VVV值。
3.丟棄較低VVV值的那個。
OpenCV中的高速拐角檢測器

它被稱為OpenCV中的任何其他特征檢測器。 如果需要,您可以指定閾值,是否要應用非極大抑制,要使用的鄰域等。 對于鄰域,定義了三個標志,分別為cv.FAST_FEATURE_DETECTOR_TYPE_5_8,cv.FAST_FEATURE_DETECTOR_TYPE_7_12和cv.FAST_FEATURE_DETECTOR_TYPE_9_16。 以下是有關如何檢測和繪制FAST特征點的簡單代碼。

import numpy as np import cv2 as cv from matplotlib import pyplot as plt img = cv.imread('simple.jpg',0) # 用默認值初始化FAST對象 fast = cv.FastFeatureDetector_create() # 尋找并繪制關鍵點 kp = fast.detect(img,None) img2 = cv.drawKeypoints(img, kp, None, color=(255,0,0)) # 打印所有默認參數 print( "Threshold: {}".format(fast.getThreshold()) ) print( "nonmaxSuppression:{}".format(fast.getNonmaxSuppression()) ) print( "neighborhood: {}".format(fast.getType()) ) print( "Total Keypoints with nonmaxSuppression: {}".format(len(kp)) ) cv.imwrite('fast_true.png',img2) # 關閉非極大抑制 fast.setNonmaxSuppression(0) kp = fast.detect(img,None) print( "Total Keypoints without nonmaxSuppression: {}".format(len(kp)) ) img3 = cv.drawKeypoints(img, kp, None, color=(255,0,0)) cv.imwrite('fast_false.png',img3)

查看結果。第一張圖片顯示了帶有nonmaxSuppression的FAST,第二張圖片顯示了沒有nonmaxSuppression的FAST.

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的用于角点检测的FAST算法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。