SlideShare a Scribd company logo
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
ORB 特征
高洪臣
cggos@outlook.com
2020 年 7 月 10 日
高洪臣 ORB 特征 2020 年 7 月 10 日 1 / 12
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Image Features
feature types
feature extraction(detection) & matching
• feature detector
• feature descriptor
高洪臣 ORB 特征 2020 年 7 月 10 日 2 / 12
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Corner / Keypoint / Interest Point
• keypoint detector
• Harris (1988)
• Shi-Tomas (1994)
• FAST1
(Features from Accelerated and Segments Test) (2006)
• AGAST (2010)
• keypoint descriptor
• BRIEF2
(Binary robust independent elementary feature) (2010)
• keypoint detector & descriptor
• SIFT (1999, 2004)
• SURF (2006)
• BRISK (Binary Robust Invariant Scalable Keypoints) (2011)
• ORB3
(2011)
• FREAK (2012)
• KAZE (2012)
1Edward Rosten and Tom Drummond. “Machine Learning for High-Speed Corner Detection.”. In: ECCV (1).
Ed. by Ales Leonardis, Horst Bischof, and Axel Pinz. Vol. 3951. Lecture Notes in Computer Science. Springer,
2006, pp. 430–443. isbn: 3-540-33832-2. url: http://dblp.uni-trier.de/db/conf/eccv/eccv2006-1.html#RostenD06.
2Michael Calonder et al. “BRIEF: Binary Robust Independent Elementary Features”. In:
Proceedings of the 11th European Conference on Computer Vision: Part IV. ECCV’10. Heraklion, Crete,
Greece: Springer-Verlag, 2010, pp. 778–792. isbn: 364215560X.
3Ethan Rublee et al. “ORB: An efficient alternative to SIFT or SURF”. In:
2011 International conference on computer vision. Ieee. 2011, pp. 2564–2571.
高洪臣 ORB 特征 2020 年 7 月 10 日 3 / 12
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
ORB Overview
ORB = Oriented FAST + Rotated BRIEF
• oFAST (ORB Detector)
• keypoint position - FAST
• keypoint orientation - image patch moment
• keypoint response/score - NMS(Non-Maximal Supression)
• scale-invariant - image pyramid
• rBRIEF (ORB Descriptor)
• keypoint descriptor - BRIEF
• rotation-invariant - keypoint orientation
高洪臣 ORB 特征 2020 年 7 月 10 日 4 / 12
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Multiscale Image Pyramid
Parameters
• level: 8
• scale: 1.2
• downsample:
bilinear interpolation
produce FAST features and compute descriptors at each level in the pyramid
高洪臣 ORB 特征 2020 年 7 月 10 日 5 / 12
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
FAST
fast-9
•  9 contiguous pixels in a circle (of 16 pixels) brighter than Ip + t or darker than Ip − t
• Rapid rejection by testing 1, 9, 5 then 13
NMS (Non-Maximal Suppression) 1
remove corners which have an adjacent corner with higher score
Uniform Distribution
DistributeOctTree() 2
1all called non-maximum suppression
2use Quad-Tree to iteratively segment image regions in ORB-SLAM2
高洪臣 ORB 特征 2020 年 7 月 10 日 6 / 12
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Orientation by Intensity Centroid (IC)
the moments of a patch:
mpq =
∑
x,y
xp
yq
I(x, y)
the first order moment of a patch 1
I (radius = 15):
m10 =
15∑
x=−15
15∑
y=−15
xI(x, y) =
15∑
y=0
15∑
x=−15
x [I(x, y) − I(x, −y)]
m01 =
15∑
x=−15
15∑
y=−15
yI(x, y) =
15∑
y=1
15∑
x=−15
y [I(x, y) − I(x, −y)]
the intensity centroid:
C =
(
m10
m00
,
m01
m00
)
the orientation (from the corner’s center to the centroid):
θ = atan 2 (m01, m10)
1a circular patch
高洪臣 ORB 特征 2020 年 7 月 10 日 7 / 12
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Image Gaussian Filtering/Blurring/Smoothing 1
why filtering
start by smoothing image using a Gaussian kernel at each level in the pyramid in order to
prevent the descriptor from being sensitive to high-frequency noise
Gaussian Kernel
G(u, v) =
1
2πσ2
e
− u2+v2
2σ2
Gn(u, v) =
1
s
· e
− u2+v2
2σ2 , s =
w∑
u=−w
w∑
v=−w
e
− u2+v2
2σ2
(a) (u,v) (b) kernel (σ=1.5) (c) normalized
Image Gaussian Filtering: I′(i, j) =
∑w
u=−w
∑w
v=−w
I(i + u, j + v)Gn(u, v)
1low-pass filter
高洪臣 ORB 特征 2020 年 7 月 10 日 8 / 12
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Separability of the Gaussian filter
s =
w∑
u=−w
w∑
v=−w
g(u) · g(v) =
( w∑
u=−w
g(u)
)
·
( w∑
v=−w
g(v)
)
= s′
· s′
Gn(u, v) =
1
s
· e− u2
2σ2
· e− v2
2σ2
=
1
s
· g(u) · g(v) =
g(u)
s′
·
g(v)
s′
Separable Kernel Matrix:
G(2w+1)×(2w+1) =
1
s








g(−w)g(−w) . . . g(−w)g(0) . . . g(−w)g(w)
...
...
...
g(0)g(−w) . . . g(0)g(0) . . . g(0)g(w)
...
...
...
g(w)g(−w) . . . g(w)g(0) . . . g(w)g(w)








=
1
s′








g(−w)
...
g(0)
...
g(w)








·
1
s′
[
g(−w) . . . g(0) . . . g(w)
]
高洪臣 ORB 特征 2020 年 7 月 10 日 9 / 12
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Separability of the Gaussian filter
Image Gaussian Filtering:
I′
(i, j) =
w∑
u=−w
w∑
v=−w
I(i + u, j + v)Gn(u, v)
=
w∑
u=−w
w∑
v=−w
I(i + u, j + v)
1
s
g(u)g(v)
=
w∑
u=−w
w∑
v=−w
I(i + u, j + v)
1
s′
g(u)
1
s′
g(v)
=
w∑
u=−w
[ w∑
v=−w
I(i + u, j + v)
g(v)
s′
]
g(u)
s′
=
w∑
u=−w
S(i + u)
g(u)
s′
• kernel size: (2w + 1) × (2w + 1), w = 3
1 int gaussKernel[4] = { 224, 192, 136, 72 };
高洪臣 ORB 特征 2020 年 7 月 10 日 10 / 12
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
BRIEF
• vector dim: 256 bits (32 bytes)
• each vector ←→ each keypoint
for each bit, select a pair of points in a patch I which centered a corner p and compare
their intensity
S =
( p1, . . . , pn
q1, . . . , qn
)
∈ R(2×2)×256
τ(I; pi, qi) :=
{
1 : I(pi)  I(qi)
0 : I(pi) ≥ I(qi)
the descriptor (each bit ←→ each pair of points (pi, qi)):
f(n) =
n
∑
i=1
2i−1
τ(I; pi, qi), (n = 256)
高洪臣 ORB 特征 2020 年 7 月 10 日 11 / 12
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
rBRIEF
• construct a lookup table of precomputed BRIEF patterns
1 static int ORB_pattern[256*4] = {
2 8, -3, 9, 5,
3 4, 2, 7,-12,
4 -11, 9, -8, 2,
5 7,-12, 12,-13, // ...
6 }
• steered BRIEF, for each bit of the descriptor
p′
i = p + Rθ(pi − p)
q′
i = p + Rθ(qi − p)
, Rθ =
[
cos θ − sin θ
sin θ cos θ
]
τ(I; p′
i, q′
i) :=
{
1 : I(p′
i)  I(q′
i)
0 : I(p′
i) ≥ I(q′
i)
1 float angle = (float)kpt.angle*factorPI;
2 float a = (float)cos(angle), b = (float)sin(angle);
3 #define GET_VALUE(idx) 
4 center[cvRound(pattern[idx].x*b + pattern[idx].y*a)*step + 
5 cvRound(pattern[idx].x*a - pattern[idx].y*b)]
高洪臣 ORB 特征 2020 年 7 月 10 日 12 / 12

More Related Content

What's hot

ディープラーニングの産業応用とそれを支える技術
ディープラーニングの産業応用とそれを支える技術ディープラーニングの産業応用とそれを支える技術
ディープラーニングの産業応用とそれを支える技術Shohei Hido
 
SSII2021 [TS1] Visual SLAM ~カメラ幾何の基礎から最近の技術動向まで~
SSII2021 [TS1] Visual SLAM ~カメラ幾何の基礎から最近の技術動向まで~SSII2021 [TS1] Visual SLAM ~カメラ幾何の基礎から最近の技術動向まで~
SSII2021 [TS1] Visual SLAM ~カメラ幾何の基礎から最近の技術動向まで~SSII
 
SLAM入門 第2章 SLAMの基礎
SLAM入門 第2章 SLAMの基礎SLAM入門 第2章 SLAMの基礎
SLAM入門 第2章 SLAMの基礎yohei okawa
 
確率ロボティクス第13回
確率ロボティクス第13回確率ロボティクス第13回
確率ロボティクス第13回Ryuichi Ueda
 
ROS を用いた自律移動ロボットのシステム構築
ROS を用いた自律移動ロボットのシステム構築ROS を用いた自律移動ロボットのシステム構築
ROS を用いた自律移動ロボットのシステム構築Yoshitaka HARA
 
ガイデットフィルタとその周辺
ガイデットフィルタとその周辺ガイデットフィルタとその周辺
ガイデットフィルタとその周辺Norishige Fukushima
 
MIRU2013チュートリアル:SIFTとそれ以降のアプローチ
MIRU2013チュートリアル:SIFTとそれ以降のアプローチMIRU2013チュートリアル:SIFTとそれ以降のアプローチ
MIRU2013チュートリアル:SIFTとそれ以降のアプローチHironobu Fujiyoshi
 
数式を(ちょっとしか)使わずに隠れマルコフモデル
数式を(ちょっとしか)使わずに隠れマルコフモデル数式を(ちょっとしか)使わずに隠れマルコフモデル
数式を(ちょっとしか)使わずに隠れマルコフモデルYuya Takashina
 
関東コンピュータビジョン勉強会
関東コンピュータビジョン勉強会関東コンピュータビジョン勉強会
関東コンピュータビジョン勉強会nonane
 
局所特徴量と統計学習手法による物体検出
局所特徴量と統計学習手法による物体検出局所特徴量と統計学習手法による物体検出
局所特徴量と統計学習手法による物体検出MPRG_Chubu_University
 
異常検知と変化検知 9章 部分空間法による変化点検知
異常検知と変化検知 9章 部分空間法による変化点検知異常検知と変化検知 9章 部分空間法による変化点検知
異常検知と変化検知 9章 部分空間法による変化点検知hagino 3000
 
Rosserial無線化への招待 〜Invitation to wirelessization by rosserial〜
Rosserial無線化への招待 〜Invitation to wirelessization by rosserial〜Rosserial無線化への招待 〜Invitation to wirelessization by rosserial〜
Rosserial無線化への招待 〜Invitation to wirelessization by rosserial〜Tatsuya Fukuta
 
SSII2020 [O3-01] Extreme 3D センシング
SSII2020 [O3-01]  Extreme 3D センシングSSII2020 [O3-01]  Extreme 3D センシング
SSII2020 [O3-01] Extreme 3D センシングSSII
 
複数のGNSSを用いたポーズグラフ最適化
複数のGNSSを用いたポーズグラフ最適化複数のGNSSを用いたポーズグラフ最適化
複数のGNSSを用いたポーズグラフ最適化TaroSuzuki15
 
論文紹介 Semantic Mapping for Mobile Robotics Tasks: A Survey
論文紹介 Semantic Mapping for Mobile Robotics Tasks: A Survey論文紹介 Semantic Mapping for Mobile Robotics Tasks: A Survey
論文紹介 Semantic Mapping for Mobile Robotics Tasks: A SurveyAkira Taniguchi
 
Introduction to Monte Carlo Ray Tracing (CEDEC 2013)
Introduction to Monte Carlo Ray Tracing (CEDEC 2013)Introduction to Monte Carlo Ray Tracing (CEDEC 2013)
Introduction to Monte Carlo Ray Tracing (CEDEC 2013)Takahiro Harada
 
Introductory Level of SLAM Seminar
Introductory Level of SLAM SeminarIntroductory Level of SLAM Seminar
Introductory Level of SLAM SeminarDong-Won Shin
 

What's hot (20)

ディープラーニングの産業応用とそれを支える技術
ディープラーニングの産業応用とそれを支える技術ディープラーニングの産業応用とそれを支える技術
ディープラーニングの産業応用とそれを支える技術
 
LBFGSの実装
LBFGSの実装LBFGSの実装
LBFGSの実装
 
SSII2021 [TS1] Visual SLAM ~カメラ幾何の基礎から最近の技術動向まで~
SSII2021 [TS1] Visual SLAM ~カメラ幾何の基礎から最近の技術動向まで~SSII2021 [TS1] Visual SLAM ~カメラ幾何の基礎から最近の技術動向まで~
SSII2021 [TS1] Visual SLAM ~カメラ幾何の基礎から最近の技術動向まで~
 
SLAM入門 第2章 SLAMの基礎
SLAM入門 第2章 SLAMの基礎SLAM入門 第2章 SLAMの基礎
SLAM入門 第2章 SLAMの基礎
 
20190825 vins mono
20190825 vins mono20190825 vins mono
20190825 vins mono
 
確率ロボティクス第13回
確率ロボティクス第13回確率ロボティクス第13回
確率ロボティクス第13回
 
ROS を用いた自律移動ロボットのシステム構築
ROS を用いた自律移動ロボットのシステム構築ROS を用いた自律移動ロボットのシステム構築
ROS を用いた自律移動ロボットのシステム構築
 
ガイデットフィルタとその周辺
ガイデットフィルタとその周辺ガイデットフィルタとその周辺
ガイデットフィルタとその周辺
 
MIRU2013チュートリアル:SIFTとそれ以降のアプローチ
MIRU2013チュートリアル:SIFTとそれ以降のアプローチMIRU2013チュートリアル:SIFTとそれ以降のアプローチ
MIRU2013チュートリアル:SIFTとそれ以降のアプローチ
 
数式を(ちょっとしか)使わずに隠れマルコフモデル
数式を(ちょっとしか)使わずに隠れマルコフモデル数式を(ちょっとしか)使わずに隠れマルコフモデル
数式を(ちょっとしか)使わずに隠れマルコフモデル
 
関東コンピュータビジョン勉強会
関東コンピュータビジョン勉強会関東コンピュータビジョン勉強会
関東コンピュータビジョン勉強会
 
局所特徴量と統計学習手法による物体検出
局所特徴量と統計学習手法による物体検出局所特徴量と統計学習手法による物体検出
局所特徴量と統計学習手法による物体検出
 
異常検知と変化検知 9章 部分空間法による変化点検知
異常検知と変化検知 9章 部分空間法による変化点検知異常検知と変化検知 9章 部分空間法による変化点検知
異常検知と変化検知 9章 部分空間法による変化点検知
 
Rosserial無線化への招待 〜Invitation to wirelessization by rosserial〜
Rosserial無線化への招待 〜Invitation to wirelessization by rosserial〜Rosserial無線化への招待 〜Invitation to wirelessization by rosserial〜
Rosserial無線化への招待 〜Invitation to wirelessization by rosserial〜
 
SSII2020 [O3-01] Extreme 3D センシング
SSII2020 [O3-01]  Extreme 3D センシングSSII2020 [O3-01]  Extreme 3D センシング
SSII2020 [O3-01] Extreme 3D センシング
 
複数のGNSSを用いたポーズグラフ最適化
複数のGNSSを用いたポーズグラフ最適化複数のGNSSを用いたポーズグラフ最適化
複数のGNSSを用いたポーズグラフ最適化
 
論文紹介 Semantic Mapping for Mobile Robotics Tasks: A Survey
論文紹介 Semantic Mapping for Mobile Robotics Tasks: A Survey論文紹介 Semantic Mapping for Mobile Robotics Tasks: A Survey
論文紹介 Semantic Mapping for Mobile Robotics Tasks: A Survey
 
Introduction to Monte Carlo Ray Tracing (CEDEC 2013)
Introduction to Monte Carlo Ray Tracing (CEDEC 2013)Introduction to Monte Carlo Ray Tracing (CEDEC 2013)
Introduction to Monte Carlo Ray Tracing (CEDEC 2013)
 
Introductory Level of SLAM Seminar
Introductory Level of SLAM SeminarIntroductory Level of SLAM Seminar
Introductory Level of SLAM Seminar
 
G2o
G2oG2o
G2o
 

Similar to Image ORB feature

CUDA Raytracing을 이용한 Voxel오브젝트 가시성 테스트
CUDA Raytracing을 이용한 Voxel오브젝트 가시성 테스트CUDA Raytracing을 이용한 Voxel오브젝트 가시성 테스트
CUDA Raytracing을 이용한 Voxel오브젝트 가시성 테스트YEONG-CHEON YOU
 
Blur Filter - Hanpo
Blur Filter - HanpoBlur Filter - Hanpo
Blur Filter - HanpoHanpo Cheng
 
Parallel Distributed Image Stacking and Mosaicing with Hadoop__HadoopSummit2010
Parallel Distributed Image Stacking and Mosaicing with Hadoop__HadoopSummit2010Parallel Distributed Image Stacking and Mosaicing with Hadoop__HadoopSummit2010
Parallel Distributed Image Stacking and Mosaicing with Hadoop__HadoopSummit2010Yahoo Developer Network
 
Triangle Visibility buffer
Triangle Visibility bufferTriangle Visibility buffer
Triangle Visibility bufferWolfgang Engel
 
A Bizarre Way to do Real-Time Lighting
A Bizarre Way to do Real-Time LightingA Bizarre Way to do Real-Time Lighting
A Bizarre Way to do Real-Time LightingSteven Tovey
 
Anil Thomas - Object recognition
Anil Thomas - Object recognitionAnil Thomas - Object recognition
Anil Thomas - Object recognitionIntel Nervana
 
AnNguyen_MSThesis
AnNguyen_MSThesisAnNguyen_MSThesis
AnNguyen_MSThesisAn Nguyen
 
Digital Image Processing
Digital Image ProcessingDigital Image Processing
Digital Image ProcessingAzharo7
 
LSGAN - SIMPle(Simple Idea Meaningful Performance Level up)
LSGAN - SIMPle(Simple Idea Meaningful Performance Level up)LSGAN - SIMPle(Simple Idea Meaningful Performance Level up)
LSGAN - SIMPle(Simple Idea Meaningful Performance Level up)Hansol Kang
 
Scratch to Supercomputers: Bottoms-up Build of Large-scale Computational Lens...
Scratch to Supercomputers: Bottoms-up Build of Large-scale Computational Lens...Scratch to Supercomputers: Bottoms-up Build of Large-scale Computational Lens...
Scratch to Supercomputers: Bottoms-up Build of Large-scale Computational Lens...inside-BigData.com
 
[AAAI2018] Multispectral Transfer Network: Unsupervised Depth Estimation for ...
[AAAI2018] Multispectral Transfer Network: Unsupervised Depth Estimation for ...[AAAI2018] Multispectral Transfer Network: Unsupervised Depth Estimation for ...
[AAAI2018] Multispectral Transfer Network: Unsupervised Depth Estimation for ...KAIST
 
[AAAI2018] Multispectral Transfer Network: Unsupervised Depth Estimation for ...
[AAAI2018] Multispectral Transfer Network: Unsupervised Depth Estimation for ...[AAAI2018] Multispectral Transfer Network: Unsupervised Depth Estimation for ...
[AAAI2018] Multispectral Transfer Network: Unsupervised Depth Estimation for ...KAIST
 
Video Compression Basics by sahil jain
Video Compression Basics by sahil jainVideo Compression Basics by sahil jain
Video Compression Basics by sahil jainSahil Jain
 
[Harvard CS264] 16 - Managing Dynamic Parallelism on GPUs: A Case Study of Hi...
[Harvard CS264] 16 - Managing Dynamic Parallelism on GPUs: A Case Study of Hi...[Harvard CS264] 16 - Managing Dynamic Parallelism on GPUs: A Case Study of Hi...
[Harvard CS264] 16 - Managing Dynamic Parallelism on GPUs: A Case Study of Hi...npinto
 
Applying your Convolutional Neural Networks
Applying your Convolutional Neural NetworksApplying your Convolutional Neural Networks
Applying your Convolutional Neural NetworksDatabricks
 

Similar to Image ORB feature (20)

CUDA Raytracing을 이용한 Voxel오브젝트 가시성 테스트
CUDA Raytracing을 이용한 Voxel오브젝트 가시성 테스트CUDA Raytracing을 이용한 Voxel오브젝트 가시성 테스트
CUDA Raytracing을 이용한 Voxel오브젝트 가시성 테스트
 
Blur Filter - Hanpo
Blur Filter - HanpoBlur Filter - Hanpo
Blur Filter - Hanpo
 
Parallel Distributed Image Stacking and Mosaicing with Hadoop__HadoopSummit2010
Parallel Distributed Image Stacking and Mosaicing with Hadoop__HadoopSummit2010Parallel Distributed Image Stacking and Mosaicing with Hadoop__HadoopSummit2010
Parallel Distributed Image Stacking and Mosaicing with Hadoop__HadoopSummit2010
 
Triangle Visibility buffer
Triangle Visibility bufferTriangle Visibility buffer
Triangle Visibility buffer
 
A Bizarre Way to do Real-Time Lighting
A Bizarre Way to do Real-Time LightingA Bizarre Way to do Real-Time Lighting
A Bizarre Way to do Real-Time Lighting
 
Lecture 8
Lecture 8Lecture 8
Lecture 8
 
Extreme dxt compression
Extreme dxt compressionExtreme dxt compression
Extreme dxt compression
 
Anil Thomas - Object recognition
Anil Thomas - Object recognitionAnil Thomas - Object recognition
Anil Thomas - Object recognition
 
AnNguyen_MSThesis
AnNguyen_MSThesisAnNguyen_MSThesis
AnNguyen_MSThesis
 
Digital Image Processing
Digital Image ProcessingDigital Image Processing
Digital Image Processing
 
LSGAN - SIMPle(Simple Idea Meaningful Performance Level up)
LSGAN - SIMPle(Simple Idea Meaningful Performance Level up)LSGAN - SIMPle(Simple Idea Meaningful Performance Level up)
LSGAN - SIMPle(Simple Idea Meaningful Performance Level up)
 
Scratch to Supercomputers: Bottoms-up Build of Large-scale Computational Lens...
Scratch to Supercomputers: Bottoms-up Build of Large-scale Computational Lens...Scratch to Supercomputers: Bottoms-up Build of Large-scale Computational Lens...
Scratch to Supercomputers: Bottoms-up Build of Large-scale Computational Lens...
 
Ijcet 06 10_001
Ijcet 06 10_001Ijcet 06 10_001
Ijcet 06 10_001
 
[AAAI2018] Multispectral Transfer Network: Unsupervised Depth Estimation for ...
[AAAI2018] Multispectral Transfer Network: Unsupervised Depth Estimation for ...[AAAI2018] Multispectral Transfer Network: Unsupervised Depth Estimation for ...
[AAAI2018] Multispectral Transfer Network: Unsupervised Depth Estimation for ...
 
[AAAI2018] Multispectral Transfer Network: Unsupervised Depth Estimation for ...
[AAAI2018] Multispectral Transfer Network: Unsupervised Depth Estimation for ...[AAAI2018] Multispectral Transfer Network: Unsupervised Depth Estimation for ...
[AAAI2018] Multispectral Transfer Network: Unsupervised Depth Estimation for ...
 
Video Compression Basics by sahil jain
Video Compression Basics by sahil jainVideo Compression Basics by sahil jain
Video Compression Basics by sahil jain
 
[Harvard CS264] 16 - Managing Dynamic Parallelism on GPUs: A Case Study of Hi...
[Harvard CS264] 16 - Managing Dynamic Parallelism on GPUs: A Case Study of Hi...[Harvard CS264] 16 - Managing Dynamic Parallelism on GPUs: A Case Study of Hi...
[Harvard CS264] 16 - Managing Dynamic Parallelism on GPUs: A Case Study of Hi...
 
Dr,system abhishek
Dr,system abhishekDr,system abhishek
Dr,system abhishek
 
Cbir ‐ features
Cbir ‐ featuresCbir ‐ features
Cbir ‐ features
 
Applying your Convolutional Neural Networks
Applying your Convolutional Neural NetworksApplying your Convolutional Neural Networks
Applying your Convolutional Neural Networks
 

Recently uploaded

Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessUXDXConf
 
Enterprise Security Monitoring, And Log Management.
Enterprise Security Monitoring, And Log Management.Enterprise Security Monitoring, And Log Management.
Enterprise Security Monitoring, And Log Management.Boni Yeamin
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCzechDreamin
 
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka DoktorováCzechDreamin
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...CzechDreamin
 
A Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyA Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyUXDXConf
 
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxUnpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxDavid Michel
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
 
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekAI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekCzechDreamin
 
Introduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG EvaluationIntroduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG EvaluationZilliz
 
AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101vincent683379
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
 
Server-Driven User Interface (SDUI) at Priceline
Server-Driven User Interface (SDUI) at PricelineServer-Driven User Interface (SDUI) at Priceline
Server-Driven User Interface (SDUI) at PricelineUXDXConf
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxAbida Shariff
 
Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyJohn Staveley
 
IESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIES VE
 
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlPeter Udo Diehl
 
PLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. StartupsPLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. StartupsStefano
 
ECS 2024 Teams Premium - Pretty Secure
ECS 2024   Teams Premium - Pretty SecureECS 2024   Teams Premium - Pretty Secure
ECS 2024 Teams Premium - Pretty SecureFemke de Vroome
 

Recently uploaded (20)

Structuring Teams and Portfolios for Success
Structuring Teams and Portfolios for SuccessStructuring Teams and Portfolios for Success
Structuring Teams and Portfolios for Success
 
Enterprise Security Monitoring, And Log Management.
Enterprise Security Monitoring, And Log Management.Enterprise Security Monitoring, And Log Management.
Enterprise Security Monitoring, And Log Management.
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
 
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
 
A Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyA Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System Strategy
 
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxUnpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekAI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří Karpíšek
 
Introduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG EvaluationIntroduction to Open Source RAG and RAG Evaluation
Introduction to Open Source RAG and RAG Evaluation
 
AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
Server-Driven User Interface (SDUI) at Priceline
Server-Driven User Interface (SDUI) at PricelineServer-Driven User Interface (SDUI) at Priceline
Server-Driven User Interface (SDUI) at Priceline
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
Demystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John StaveleyDemystifying gRPC in .Net by John Staveley
Demystifying gRPC in .Net by John Staveley
 
IESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIESVE for Early Stage Design and Planning
IESVE for Early Stage Design and Planning
 
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
 
PLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. StartupsPLAI - Acceleration Program for Generative A.I. Startups
PLAI - Acceleration Program for Generative A.I. Startups
 
ECS 2024 Teams Premium - Pretty Secure
ECS 2024   Teams Premium - Pretty SecureECS 2024   Teams Premium - Pretty Secure
ECS 2024 Teams Premium - Pretty Secure
 

Image ORB feature

  • 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Image Features feature types feature extraction(detection) & matching • feature detector • feature descriptor 高洪臣 ORB 特征 2020 年 7 月 10 日 2 / 12
  • 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Corner / Keypoint / Interest Point • keypoint detector • Harris (1988) • Shi-Tomas (1994) • FAST1 (Features from Accelerated and Segments Test) (2006) • AGAST (2010) • keypoint descriptor • BRIEF2 (Binary robust independent elementary feature) (2010) • keypoint detector & descriptor • SIFT (1999, 2004) • SURF (2006) • BRISK (Binary Robust Invariant Scalable Keypoints) (2011) • ORB3 (2011) • FREAK (2012) • KAZE (2012) 1Edward Rosten and Tom Drummond. “Machine Learning for High-Speed Corner Detection.”. In: ECCV (1). Ed. by Ales Leonardis, Horst Bischof, and Axel Pinz. Vol. 3951. Lecture Notes in Computer Science. Springer, 2006, pp. 430–443. isbn: 3-540-33832-2. url: http://dblp.uni-trier.de/db/conf/eccv/eccv2006-1.html#RostenD06. 2Michael Calonder et al. “BRIEF: Binary Robust Independent Elementary Features”. In: Proceedings of the 11th European Conference on Computer Vision: Part IV. ECCV’10. Heraklion, Crete, Greece: Springer-Verlag, 2010, pp. 778–792. isbn: 364215560X. 3Ethan Rublee et al. “ORB: An efficient alternative to SIFT or SURF”. In: 2011 International conference on computer vision. Ieee. 2011, pp. 2564–2571. 高洪臣 ORB 特征 2020 年 7 月 10 日 3 / 12
  • 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ORB Overview ORB = Oriented FAST + Rotated BRIEF • oFAST (ORB Detector) • keypoint position - FAST • keypoint orientation - image patch moment • keypoint response/score - NMS(Non-Maximal Supression) • scale-invariant - image pyramid • rBRIEF (ORB Descriptor) • keypoint descriptor - BRIEF • rotation-invariant - keypoint orientation 高洪臣 ORB 特征 2020 年 7 月 10 日 4 / 12
  • 5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Multiscale Image Pyramid Parameters • level: 8 • scale: 1.2 • downsample: bilinear interpolation produce FAST features and compute descriptors at each level in the pyramid 高洪臣 ORB 特征 2020 年 7 月 10 日 5 / 12
  • 6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FAST fast-9 • 9 contiguous pixels in a circle (of 16 pixels) brighter than Ip + t or darker than Ip − t • Rapid rejection by testing 1, 9, 5 then 13 NMS (Non-Maximal Suppression) 1 remove corners which have an adjacent corner with higher score Uniform Distribution DistributeOctTree() 2 1all called non-maximum suppression 2use Quad-Tree to iteratively segment image regions in ORB-SLAM2 高洪臣 ORB 特征 2020 年 7 月 10 日 6 / 12
  • 7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Orientation by Intensity Centroid (IC) the moments of a patch: mpq = ∑ x,y xp yq I(x, y) the first order moment of a patch 1 I (radius = 15): m10 = 15∑ x=−15 15∑ y=−15 xI(x, y) = 15∑ y=0 15∑ x=−15 x [I(x, y) − I(x, −y)] m01 = 15∑ x=−15 15∑ y=−15 yI(x, y) = 15∑ y=1 15∑ x=−15 y [I(x, y) − I(x, −y)] the intensity centroid: C = ( m10 m00 , m01 m00 ) the orientation (from the corner’s center to the centroid): θ = atan 2 (m01, m10) 1a circular patch 高洪臣 ORB 特征 2020 年 7 月 10 日 7 / 12
  • 8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Image Gaussian Filtering/Blurring/Smoothing 1 why filtering start by smoothing image using a Gaussian kernel at each level in the pyramid in order to prevent the descriptor from being sensitive to high-frequency noise Gaussian Kernel G(u, v) = 1 2πσ2 e − u2+v2 2σ2 Gn(u, v) = 1 s · e − u2+v2 2σ2 , s = w∑ u=−w w∑ v=−w e − u2+v2 2σ2 (a) (u,v) (b) kernel (σ=1.5) (c) normalized Image Gaussian Filtering: I′(i, j) = ∑w u=−w ∑w v=−w I(i + u, j + v)Gn(u, v) 1low-pass filter 高洪臣 ORB 特征 2020 年 7 月 10 日 8 / 12
  • 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Separability of the Gaussian filter s = w∑ u=−w w∑ v=−w g(u) · g(v) = ( w∑ u=−w g(u) ) · ( w∑ v=−w g(v) ) = s′ · s′ Gn(u, v) = 1 s · e− u2 2σ2 · e− v2 2σ2 = 1 s · g(u) · g(v) = g(u) s′ · g(v) s′ Separable Kernel Matrix: G(2w+1)×(2w+1) = 1 s         g(−w)g(−w) . . . g(−w)g(0) . . . g(−w)g(w) ... ... ... g(0)g(−w) . . . g(0)g(0) . . . g(0)g(w) ... ... ... g(w)g(−w) . . . g(w)g(0) . . . g(w)g(w)         = 1 s′         g(−w) ... g(0) ... g(w)         · 1 s′ [ g(−w) . . . g(0) . . . g(w) ] 高洪臣 ORB 特征 2020 年 7 月 10 日 9 / 12
  • 10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Separability of the Gaussian filter Image Gaussian Filtering: I′ (i, j) = w∑ u=−w w∑ v=−w I(i + u, j + v)Gn(u, v) = w∑ u=−w w∑ v=−w I(i + u, j + v) 1 s g(u)g(v) = w∑ u=−w w∑ v=−w I(i + u, j + v) 1 s′ g(u) 1 s′ g(v) = w∑ u=−w [ w∑ v=−w I(i + u, j + v) g(v) s′ ] g(u) s′ = w∑ u=−w S(i + u) g(u) s′ • kernel size: (2w + 1) × (2w + 1), w = 3 1 int gaussKernel[4] = { 224, 192, 136, 72 }; 高洪臣 ORB 特征 2020 年 7 月 10 日 10 / 12
  • 11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . BRIEF • vector dim: 256 bits (32 bytes) • each vector ←→ each keypoint for each bit, select a pair of points in a patch I which centered a corner p and compare their intensity S = ( p1, . . . , pn q1, . . . , qn ) ∈ R(2×2)×256 τ(I; pi, qi) := { 1 : I(pi) I(qi) 0 : I(pi) ≥ I(qi) the descriptor (each bit ←→ each pair of points (pi, qi)): f(n) = n ∑ i=1 2i−1 τ(I; pi, qi), (n = 256) 高洪臣 ORB 特征 2020 年 7 月 10 日 11 / 12
  • 12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . rBRIEF • construct a lookup table of precomputed BRIEF patterns 1 static int ORB_pattern[256*4] = { 2 8, -3, 9, 5, 3 4, 2, 7,-12, 4 -11, 9, -8, 2, 5 7,-12, 12,-13, // ... 6 } • steered BRIEF, for each bit of the descriptor p′ i = p + Rθ(pi − p) q′ i = p + Rθ(qi − p) , Rθ = [ cos θ − sin θ sin θ cos θ ] τ(I; p′ i, q′ i) := { 1 : I(p′ i) I(q′ i) 0 : I(p′ i) ≥ I(q′ i) 1 float angle = (float)kpt.angle*factorPI; 2 float a = (float)cos(angle), b = (float)sin(angle); 3 #define GET_VALUE(idx) 4 center[cvRound(pattern[idx].x*b + pattern[idx].y*a)*step + 5 cvRound(pattern[idx].x*a - pattern[idx].y*b)] 高洪臣 ORB 特征 2020 年 7 月 10 日 12 / 12