什么是ORB
FROM:http://www.cvchina.info/2011/07/04/whats-orb/
什么是ORB
2011年7月4日cvchina 發(fā)表評(píng)論閱讀評(píng)論ORB是是ORiented Brief的簡(jiǎn)稱。ORB的描述在下面文章中:
Ethan Rublee and Vincent Rabaud and Kurt Konolige and Gary Bradski, ORB: an ef?cient alternative to SIFT or SURF, ICCV 2011
沒有加上鏈接是因?yàn)樽髡叽_實(shí)還沒有放出論文,不過(guò)OpenCV2.3RC中已經(jīng)有了實(shí)現(xiàn),WillowGarage有一個(gè)talk也提到了這個(gè)算法,因此我不揣淺陋,在這里總結(jié)一下。
Brief是Binary Robust Independent Elementary Features的縮寫。這個(gè)特征描述子是由EPFL的Calonder在ECCV2010上提出的。主要思路就是在特征點(diǎn)附近隨機(jī)選取若干點(diǎn)對(duì),將這些點(diǎn)對(duì)的灰度值的大小,組合成一個(gè)二進(jìn)制串,并將這個(gè)二進(jìn)制串作為該特征點(diǎn)的特征描述子。詳細(xì)算法描述參考如下論文:
Calonder M., Lepetit V., Strecha C., Fua P.: BRIEF: Binary Robust Independent Elementary Features. ECCV 2010
注意在BRIEF eccv2010的文章中,BRIEF描述子中的每一位是由隨機(jī)選取的兩個(gè)像素點(diǎn)做二進(jìn)制比較得來(lái)的。文章同樣提到,在此之前,需要選取合適的gaussian kernel對(duì)圖像做平滑處理。(為什么要強(qiáng)調(diào)這一點(diǎn),因?yàn)橄率龅腛RB對(duì)此作了改進(jìn)。)
BRIEF的優(yōu)點(diǎn)在于速度,缺點(diǎn)也相當(dāng)明顯:
1:不具備旋轉(zhuǎn)不變性。
2:對(duì)噪聲敏感
3:不具備尺度不變性。
ORB就是試圖解決上述缺點(diǎn)中的1和2.
如何解決旋轉(zhuǎn)不變性:
在ORB的方案中,是采用了FAST作為特征點(diǎn)檢測(cè)算子。FAST應(yīng)用的很多了,是出名的快,以防有人不知道,請(qǐng)看這里:
在Sift的方案中,特征點(diǎn)的主方向是由梯度直方圖的最大值和次大值所在的bin對(duì)應(yīng)的方向決定的。略嫌耗時(shí)。
在ORB的方案中,特征點(diǎn)的主方向是通過(guò)矩(moment)計(jì)算而來(lái),公式如下:
有了主方向之后,就可以依據(jù)該主方向提取BRIEF描述子。但是由此帶來(lái)的問(wèn)題是,由于主方向會(huì)發(fā)生變化,隨機(jī)點(diǎn)對(duì)的相關(guān)性會(huì)比較大,從而降低描述子的判別性。解決方案也很直接,采取貪婪的,窮舉的方法,暴力找到相關(guān)性較低的隨機(jī)點(diǎn)對(duì)。
如何解決對(duì)噪聲敏感的問(wèn)題:
在前面提到過(guò),在最早的eccv2010的文章中,BRIEF使用的是pixel跟pixel的大小來(lái)構(gòu)造描述子的每一個(gè)bit。這樣的后果就是對(duì)噪聲敏感。因此,在ORB的方案中,做了這樣的改進(jìn),不再使用pixel-pair,而是使用9×9的patch-pair,也就是說(shuō),對(duì)比patch的像素值之和。(可以通過(guò)積分圖快速計(jì)算)。
關(guān)于尺度不變性:
ORB沒有試圖解決尺度不變性,(因?yàn)镕AST本身就不具有尺度不變性。)但是這樣只求速度的特征描述子,一般都是應(yīng)用在實(shí)時(shí)的視頻處理中的,這樣的話就可以通過(guò)跟蹤還有一些啟發(fā)式的策略來(lái)解決尺度不變性的問(wèn)題。
關(guān)于計(jì)算速度:
ORB是sift的100倍,是surf的10倍。
關(guān)于性能:
下面是一個(gè)性能對(duì)比,ORB還是很給力。點(diǎn)擊看大圖。
參考Slides
分類: 新聞 標(biāo)簽: BRIEF, epfl, FAST, opencv2.3, orb, 特征描述子 評(píng)論 (25)Trackbacks (3)發(fā)表評(píng)論Trackback關(guān)注,希望繼續(xù)跟蹤更新啊
不完全統(tǒng)計(jì)了一下ICCV11和feature相關(guān)的文章
75 CARD: Compact And Real-time Descriptors
344 Robust Consistent Correspondence Between 3D Non-Rigid Shapes Based On “Dual Shape-DNA”
350 Local Intensity Order Pattern for Feature Description
929 Gradient-based learning of higher-order image features
951 Latent Low-Rank Representation for Subspace Segmentation and Feature Extraction
971 Speeded-up, relaxed spatial matching
1456 Evaluation of Image Features Using a Photorealistic Virtual World
1630 Robust Topological Features for Deformation Invariant Image Matching
1655 RISK: Binary Robust Invariant Scalable Keypoints
1673 ORB: an efficient alternative to SIFT or SURF
這個(gè)信息要關(guān)注,好像很強(qiáng),要持續(xù)跟蹤
持續(xù)關(guān)注~~~~
用過(guò)作者的brief,的確很強(qiáng)大,而且實(shí)現(xiàn)很簡(jiǎn)單
當(dāng)初看了brief之后,發(fā)現(xiàn)和<>的思想蠻像的,也想把fast9與brief結(jié)合一下,這樣才是快快聯(lián)合啊,原來(lái)作者已完成了。不過(guò)我在高清的交通視頻上實(shí)驗(yàn),fast9不是理想,提取的位置并不是我想要的。
07年有個(gè)論文:Fast Keypoint Recognition in Ten Lines of Code,就是叫 Fua的這幫人,Fern嘛。再有就是劍橋Tom Drummond的Multiple Target Localisation at over 100 FPS,都是這個(gè)路子
http://www6.in.tum.de/Main/ResearchAgast
比FAST還快的角點(diǎn)檢測(cè)~
有試過(guò)么?
測(cè)試過(guò)了,確實(shí)快些。@cvchina
粗劣的比較下:在我的機(jī)器上,測(cè)試opencv自帶的 box.png圖,release模式下,都進(jìn)行non-maximum suppression,測(cè)試時(shí)間:
FAST9 : 1.01025ms
FAST10: 1.14422ms
FAST11: 1.310358ms
FAST12:0.951357ms
OAST9_16: 0.450199ms
Agast7_12d: 0.367425ms
Agast7_12s: 0.424219ms
Agast5_8: 0.31986ms
想當(dāng)牛逼。
Noodles :
粗劣的比較下:在我的機(jī)器上,測(cè)試opencv自帶的 box.png圖,release模式下,都進(jìn)行non-maximum suppression,測(cè)試時(shí)間:
FAST9 : 1.01025ms
FAST10: 1.14422ms
FAST11: 1.310358ms
FAST12:0.951357ms
OAST9_16: 0.450199ms
Agast7_12d: 0.367425ms
Agast7_12s: 0.424219ms
Agast5_8: 0.31986ms
Noodles, opencv的svn里面提交了對(duì)FAST的加速改進(jìn),使用了sse2. 你可以再次比較一下么?
好@cvchina
@cvchina
同樣的條件:opencv 最新的FAST角點(diǎn)檢測(cè)實(shí)時(shí)性能:
FAST : 0.554308ms
之前的opencv2.3.1為:2.22326ms
粗看了下,也是點(diǎn)對(duì)特征。這個(gè)和隨機(jī)森林隨機(jī)蕨算法的區(qū)別作者能介紹下嗎?
另外,這個(gè)的算法對(duì)內(nèi)存的需求怎么樣?
Ferns存儲(chǔ)的實(shí)際上一個(gè)多類分類器吧,并沒有一個(gè)顯示的描述子,而且對(duì)內(nèi)存要求很高。
Orb每個(gè)特征點(diǎn)只需32Byte,可以說(shuō)非常小了。
Agast的源代碼是linux平臺(tái)的么?
這些時(shí)間是指純檢測(cè)的時(shí)間,還是也包括load圖像等其它操作的時(shí)間@Noodles
“但是由此帶來(lái)的問(wèn)題是,由于主方向會(huì)發(fā)生變化,隨機(jī)點(diǎn)對(duì)的相關(guān)性會(huì)比較大,從而降低描述子的判別性。”
博主可以幫忙解釋下這句話的意思么,看不懂啊~
按照博主的博客來(lái)說(shuō)的話,那個(gè)ORB是在BRIEF的基礎(chǔ)上進(jìn)行的改進(jìn)嗎?還有博文中在ORB部分提到了啟發(fā)式策略改進(jìn),我想知道您說(shuō)的這個(gè)啟發(fā)式究竟是什么意思?期待您的答復(fù),謝謝!
這寫的也太簡(jiǎn)單扼要了~~~
匹配對(duì)是5*5吧 我看論文上這么寫的 ?
Noodles :
好@cvchina
總結(jié)
- 上一篇: 基于弹性束图匹配的人脸识别
- 下一篇: ZMQ: 基本原理