1. 程式人生 > >A tutorial on binary descriptors – part 5 – The FREAK descriptor(轉)

A tutorial on binary descriptors – part 5 – The FREAK descriptor(轉)

A tutorial on binary descriptors – part 5 – The FREAK descriptor

This is our fifth post in the series about binary descriptors and here we will talk about the FREAK[4] descriptor. This is the last descriptor that we’ll talk about as the next and final post in the series will give a performance evaluation of the different binary descriptors. Just a remainder – we had 

an introduction to binary descriptors and posts about BRIEF[5], ORB[3] and BRISK[2].

FREAK descriptor

FREAK descriptor

As you may recall from the previous posts, a binary descriptor is composed out of three parts:

  1. A sampling pattern: where to sample points in the region around the descriptor.
  2. Orientation compensation: some mechanism to measure the orientation of the keypoint and rotate it to compensate for rotation changes.
  3. Sampling pairs: which pairs to compare when building the final descriptor.

Recall that to build the binary string representing a region around a keypoint we need to go over all the pairs and for each pair (p1, p2) – if the intensity at point p1 is greater than the intensity at point p2, we write 1 in the binary string and 0 otherwise.

In a nutshell, FREAK is similar to BRISK by having a handcrafter sampling pattern and also similar to ORB by using machine learning techniques to learn the optimal set of sampling pairs. FREAK also has an orientation mechanism that is similar to that of BRISK.

Retinal sampling pattern

Many sampling patterns are possible to compare pixel intensities. As we’ve seen in the previous posts, BRIEF uses random pairs, ORB uses learned pairs and BRISK uses a circular pattern where points are equally spaced on circles concentric, similar to DAISY[1].

FREAK suggests to use the retinal sampling grid which is also circular with the difference of having higher density of points near the center. The density of points drops exponentially as can be seen in the following figure:

FREAK descriptor - FREAK samping pattern

FREAK descriptor – FREAK samping pattern

Each sampling point is smoothed with a Gaussian kernel where the radius of the circle illustrates the size of the standard deviation of the kernel.

As can be seen in the following figure, the suggested sampling grid corresponds with the distribution of receptive fields over the retina:

FREAK descriptor - distribution of receptive fields over the retina

FREAK descriptor – distribution of receptive fields over the retina

Learning the sampling pairs

With few dozen sampling points, thousands of sampling pairs can be considered. However, many of the pairs might not be useful efficiently describe a patch. A possible strategy can be to follow BRISK’s approach[2] and select pairs according to their spatial distance. However, the selected pairs can be highly correlated and not discriminant. Consequently, FREAKS follows ORB’s approach[3] and tries to learn the pairs by maximizing variance of the pairs and taking pairs that are not correlated. ORB’s approach was explained in length in our post about ORB, so we won’t explain it again here.

Interestingly, there is a structure in the resulting pairs – a coarse-to-fine approach which matches our understanding of the model of the human retina. The first pairs that are selected mainly compare sampling points in the outer rings of the pattern where the last pairs compare mainly points in the inner rings of the pattern. This is similar to the way the human eye operates, as it first use the perifoveal receptive fields to estimate the location of an object of interest. Then, the validation is performed with the more densely distributed receptive fields in the fovea area.

FREAK descriptor - the human retina

FREAK descriptor – the human retina

The sampling pairs are illustrated in the following figure, where each figure contains 128 pairs (from left to right, top to bottom):

FREAK descriptor - FREAK's sampling pairs

FREAK descriptor – FREAK’s sampling pairs

FREAKS takes advantage of this coarse-to-fine structure to further speed up the matching using a cascade approach: when matching two descriptors, we first compare only the first 128 bits. If the distance is smaller than a threshold, we further continue the comparison to the next 128 bits. As a result, a cascade of comparisons is performed accelerating even further the matching as more than 90% of the candidates are discarded with the first 128 bits of the descriptor. The following figure illustrates the cascade approach:

FREAK descripor - FREAK's cascade approach

FREAK descripor – FREAK’s cascade approach

Orientation assignment

To somewhat compensate for rotation changes, FREAK measures the orientation of the keypoint and rotates the sampling pairs my measure angle. FREAK’s mechanism for measuring the orientation is similar to that of BRISK[2] only that instead of using long distance pairs, FREAK uses a predefined set of 45 symmetric sampling pairs:

FREAK descriptor - FREAK's orientation pairs

FREAK descriptor – FREAK’s orientation pairs

For more details on orientation assignment, you can refer to the post on BRISK[2].

Performance

Though we’ll have a whole post that will compare the performance of the binary descriptors, we should say a few words now.

  • When there are changes due to blur, FREAK performs worse of all of the all the binary descriptors.
  • When there are view-point changes, FREAK slightly outperforms ORB and BRISK, but performs worse than BRIEF.
  • When there are zoom + rotation changes, FREAK slightly outperforms BRIEF and BRISK, but performs worse than ORB.
  • When illumination changes or JPEG compression is present, FREAK slightly outperforms BRISK and ORB, but performs much worse than BRIEF.

The next post will be our last in the series about binary descriptors, which will give a performance evaluation of binary descriptors.

References

[1] Tola, Engin, Vincent Lepetit, and Pascal Fua. “A fast local descriptor for dense matching.” Computer Vision and Pattern Recognition, 2008. CVPR 2008. IEEE Conference on. IEEE, 2008.‏

[2] Leutenegger, Stefan, Margarita Chli, and Roland Y. Siegwart. “BRISK: Binary robust invariant scalable keypoints.” Computer Vision (ICCV), 2011 IEEE International Conference on. IEEE, 2011.

[3] Rublee, Ethan, et al. “ORB: an efficient alternative to SIFT or SURF.” Computer Vision (ICCV), 2011 IEEE International Conference on. IEEE, 2011.‏‏

[4] Alahi, Alexandre, Raphael Ortiz, and Pierre Vandergheynst. “Freak: Fast retina keypoint.” Computer Vision and Pattern Recognition (CVPR), 2012 IEEE Conference on. IEEE, 2012.‏

[5] Calonder, Michael, et al. “Brief: Binary robust independent elementary features.” Computer Vision–ECCV 2010. Springer Berlin Heidelberg, 2010. 778-792.‏

相關推薦

A tutorial on binary descriptorspart 5The FREAK descriptor

A tutorial on binary descriptors – part 5 – The FREAK descriptor This is our fifth post in the series about binary descriptors and here w

A tutorial on binary descriptorspart 2 – The BRIEF descriptor

A tutorial on binary descriptors – part 2 – The BRIEF descriptor Following the previous posts that provided both an introduction to patch

A tutorial on binary descriptorspart 4 – The BRISK descriptor

A tutorial on binary descriptors – part 4 – The BRISK descriptor This fourth post in our series about binary descriptors that will talk a

Multipath TCP on iOS11 : A closer look at the TCP Options

Multipath TCP uses a variety of TCP options to use different paths simultaneously. Several Multipath TCP options are defined in RFC6824 : subtype 0x0:

論文閱讀:A Primer on Neural Network Models for Natural Language Processing1

選擇 works embed 負責 距離 feature 結構 tran put 前言 2017.10.2博客園的第一篇文章,Mark。 由於實驗室做的是NLP和醫療相關的內容,因此開始啃NLP這個硬骨頭,希望能學有所成。後續將關註知識圖譜,深度強化學習等內

理解並使用.NET 4.5中的HttpClient

nts 定制 creat exit sta ogg 服務器 nal view 原文地址:http://www.cnblogs.com/wywnet/p/httpclient.html HttpClient介紹HttpClient是.NET4.5引入的一個HTTP客戶端庫,

mycelipse6.5 裝maven外掛

增加JDK路徑到eclipse.ini檔案中add path to your SDK in eclipse.ini  開啟eclipse.ini,然後在-vm path_to_javaw_on_your_machine 新增jdk路徑所以在我的這個例子裡,應該是:-vm  D:\\Java\jdk1.6.0_

A survey on techical threat intelligence in the age of sophisticated cyber attacks

名詞解釋: 威脅情報(threat intelligence):威脅情報是針對一個已經存在或正在顯露的威脅或危害資產的行為的,基於證據知識的,包含情境、機制、影響和應對建議的,用於幫助解決威脅或危害進行決策的知識威脅不太好理解,說白了就是提前知道黑客可能進攻的資訊,簡單的說,我們經常可以從CERT、安全服務

論文翻譯:A Tutorial on Energy-Based Learning

文章地址LeCun經典論文 Abstract      基於能量的模型(EBM)通過將標量能量與變數的每個配置相關聯來捕獲變數之間的依賴關係。推論包括鉗制觀測變數的值,並找出使能量最小的其餘變數的配置。學習包括找到一個能量函式,其中變數的觀察結構的能量比不可觀測的能量要低

【Network Architecture】Inception-v4, Inception-ResNet and the Impact of Residual Connections on Learning Feature Extractor[Inception v4]

文章來源: https://www.cnblogs.com/shouhuxianjian/p/7786760.html Feature Extractor[Inception v4] 0. 背景 隨著何凱明等人提出的ResNet v1,google這邊坐

Spring Security二十三:6.5 The Default AccessDecisionManager預設接入策略管理

This section assumes you have some knowledge of the underlying architecture for access-control within Spring Security. If you don’t you can skip it and com

A. Help Vasilisa the Wise 2 邏輯-----------------------C語言——菜鳥級

A. Help Vasilisa the Wise 2 time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard

論文: Insights on Transfer Optimization: Because Experience is the Best Teacher2---遷移優化定義

(1) Consider a series of K optimization problems (or tasks) that are labeled as T1, T2, . . . , T K , belonging to domains D1, D2, . . . ,

Angular 4 - The Basics 筆記1: Install

install rst logs nod first log 筆記 npm app Install Node.js Install Angular CLI sudo npm install -g @angular/cli Set-up new app

ZOJ 2770 Burn the Linked Camp 差分約束

最小 差分約束 ast divide sam ges format gen period It is well known that, in the period of The Three Empires, Liu Bei, the emperor of the Shu

5-5 多邊形周長計算繼承

oid int return () equal while per 參數化 包含 給出下面的多邊形基類框架: class polygon { protected: int number;//邊數,最多不超過100條邊 private: int side_l

POJ 2286 The Rotation GameIDA*

symbols lock several 代碼 time list sym stat strong The Rotation Game Time Limit: 15000MS Memory Limit: 150000K Total Sub

基於MVC4+EasyUI的Web開發框架經驗總結5--使用HTML編輯控件CKEditor和CKFinder

err config 兩個 腳本 web開發 upload asp 正常 初始 http://www.cnblogs.com/wuhuacong/p/3780356.html Web開發上有很多HTML的編輯控件,如CKEditor、kindeditor等等,很多都做的很

POJ - 2286 - The Rotation Game IDA*

cto type lines move org for -s nes hang IDA*算法,即叠代加深的A*算法。實際上就是叠代加深+DFS+估價函數 題目傳送:The Rotation Game AC代碼: #include <map&g

caffe openpose/Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields配置

art gravity git sid 同學 person 配置 nac 生成 Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields 是CVPR2017的一篇論文,作者稱是世界上第一個基於深度