当前位置:网站首页>SIFT feature point extraction
SIFT feature point extraction
2022-06-23 05:34:00 【Everything wins L】
Sift Feature point extraction
Sift Algorithm
Introduction to the algorithm
Scale invariant feature transformation, i.e SIFT (Scale-invariant feature transform).
1. it ⽤ To detect and describe local features in images , It looks for extreme points on a spatial scale , And extract its location 、 scale 、 Rotation invariants .
2. The description and detection of local image features can help identify objects ,SIFT Features are based on objects ⼀ Some local appearance points of interest ⽽ With the image ⼤⼩ And rotation ⽆ Turn off .
3.SIFT The essence of the algorithm is to find key points in different scale spaces ( Characteristic point ), And calculate the ⽅ towards .SIFT The key points found are ⼀ some ⼗ Sub protrusion , Not because of the light , Affine transformation and noise ⾳ Other factors ⽽ Points of change , Like the corner 、 Edge point 、 Bright spot in dark area and dark spot in bright area .
Algorithm operation steps
Image pyramid
The pyramid of Gauss
1. Images ⾼ Si ⾦ Word tower (Gaussian Pyramid) It's mining ⽤⾼ S function to the image ⾏ Blur and downsampling processing result in .
Process a picture into groups 6 Zhang , Each group has the same size but different ambiguity coefficients . The values of fuzzy coefficient are as follows :
Downsampling :
sigma Take all points Convolution
2sigma Take points every other point Convolution
When sigma The coefficient of is 2,4,8…… when , Start downsampling
The meaning of the second formula in the above figure : First use 0.5 Gaussian kernel convolution , Reuse 1.52 Gaussian kernel convolution and direct use 1.6 The effect of Gaussian kernel convolution is the same !!
S: The layer number
n: Number of pictures to be featured in advance 
In the vertical direction : Scale direction
Gaussian function and image convolution
according to 3σ principle , send ⽤NxN The template in the image every ⼀ Operation at pixels , among N=[(6σ+1)] And take the nearest odd number up .

Separate Gaussian convolution
1. Directly convolute with the image , Speed ⽐ slower , At the same time, the image edge information will also be lost seriously . You can make ⽤ The separation of ⾼ S convolution ( First of all ⽤1xN The template along X⽅ Convolute the image ⼀ Time , then ⽤Nx1 The template along Y⽅ Re convolute the image ⼀ Time , among N=[(6σ+1)] And take the nearest odd number up ), This saves time and time ⼩ The serious loss of image edge information caused by direct convolution .
Gauss gold tower source code analysis

Gaussian difference pyramid
Image translation scale normalization is to eliminate the influence of translation and scaling on the image through transformation .
Establishment of differential pyramid
Difference ⾦ The word tower is in ⾼ Si ⾦ Operating on the basis of a tower , Its construction ⽴ The process is : stay ⾼ Si ⾦⼦ The adjacent two floors in each group in the tower are subtracted ( Next ⼀ Layer minus ⼀ layer ) Just ⽣ become ⾼ S difference ⾦ Word tower .
Each layer of the same group is subtracted , Get the Gaussian difference pyramid .
doubt : There are six layers in each group in front of the difference , Why become 5 The layer ?
Differential pyramid source code analysis

Spatial extremum ( Key points ) testing ( The most critical step )
The key point is by DOG It is composed of local extreme points of space , The preliminary exploration of key points is through the same ⼀ Each in the group DoG Between two adjacent layers of images ⽐ More complete .
Extreme point detection process
Schematic diagram of extreme point detection

n: Number of pictures to be featured in advance
If the absolute value is too small, it may be noise , So don't keep these points 
Extreme point detection source code analysis

Key positioning
above ⽅ The extreme point detected by the method is the extreme point of discrete space .
The following three-dimensional ⼆ Function to accurately determine the location and scale of key points , At the same time, remove the low pair ⽐ Key points of degree and unstable edge response points ( because DoG count ⼦( Edge extraction ) Will produce ⽣ Strong edge response ), To enhance matching stability 、 carry ⾼ Anti noise performance ⼒.
Precise positioning of key points
The extreme point of discrete space is not the real extreme point . benefit ⽤ Known discrete space point interpolation obtained by continuous space extreme point ⽅ The law is called ⼦ Pixel interpolation .

In order to raise ⾼ Stability of key points , Need to scale space DoG Function into ⾏ Curve interpolation . benefit ⽤DoG Function in scale space Taylor Expansion ( The interpolation function ) by :( Then I can't understand )
( Taylor's role here is probably to reduce the error infinitely )

Find the offset at the extreme point , When it is in office ⼀ Offset in dimension ⼤ On 0.5 when ( namely x or y or σ), It means that in interpolation ⼼ Has been offset to its adjacent point , So you have to change the position of the current key . At the same time, the interpolation is repeated at the new position until it converges ; It may also exceed the set number of iterations or the range of image boundaries , At this point, such points should be deleted .
Because it's probably noise .
Eliminate edge response
Some understanding of edge response :

⼀ A poorly defined ⾼ S difference calculation ⼦ The extreme value of is across the edge ⽅ There is a comparison ⼤ Principal curvature of ,⽽ On the vertical edge ⽅ Xiang Youjiao ⼩ Principal curvature of .DOG count ⼦ Will produce ⽣ Strong edge response , Unstable edge response points need to be eliminated .
The last step of the above formula is one square less .
α、β Is the eigenvalue of the determinant
Taylor interpolation source code analysis in precise positioning

Assign key directions
In order to make the descriptor rotation invariant , Need interest ⽤ The local feature of the image is given to each ⼀ Key point assignment ⼀ Benchmark ⽅ towards . send ⽤ The method of image gradient is used to obtain the stable direction of local structure .
Look in the Gauss pyramid !!
Statistical gradient direction and gradient amplitude , Then vote in the gradient area .( actually , Every time 10° Calculate a direction , common 36 Argument value , The highest vote is in the main direction , The second is the secondary direction , The secondary direction shall be greater than the primary direction 80%, Otherwise no )
The feature points with two directions follow : Two feature point processing .
Feature point descriptor
For each ⼀ A key point , Have three messages : Location 、 Scale and ⽅ towards . The next step is to build for each key point ⽴⼀ A descriptor , So that it does not change with all kinds of changes ⽽ change ,⽐ Such as light change 、 Depending on the ⾓ Change and so on . And the descriptor should have a larger value ⾼ The uniqueness of , So as to facilitate the collection of ⾼ Probability of correct matching of feature points .
Match key algorithm :KNN.
Key matching requires descriptors to match .
128 Dimension vector :

Interpolation calculates each kind of ⼦ spot ⼋ individual ⽅ Gradient to
Sift Descriptors have rotation invariant properties : So you need to rotate the coordinate axis of the key point to the main direction , Then the stable descriptors are counted .
My classmate gave me an explanation ::

Questions in this chapter
doubt 1: There are six layers in each group in front of the difference , Why become 5 The layer ?
doubt 2: The Taylor transform operation of a vector cannot be understood .
doubt 3: Trilinear interpolation
边栏推荐
- Seata四大模式之XA模式详解及代码实现
- Markdown add background color to the picture
- Mysql入门学习(二)之子查询+关联
- Jetpack compose menubar Desktop Menu from door opening to entry
- What do Niu B programmers pay attention to when "creating an index"?
- Economic development is driven by new technology
- STC 32 Bit 8051 Single Chip Computer Development Example Tutorial one development environment
- Introduction to unityshader -- rendering optimization technology in unity (IV)
- Ams:startactivity desktop launch application
- 网上有真实的兼职吗?大学生怎么找暑期兼职?
猜你喜欢

牛B程序员在“创建索引”时都会注意啥?

Qimen dunjia assistant decision software

Konva series tutorial 1:what is konva?

When SBAS encounters rtklib
![[leetcode] longest increasing subsequence problem and its application](/img/e0/d666dccec1f65eed61fce83ac2190a.png)
[leetcode] longest increasing subsequence problem and its application

Seata四大模式之XA模式详解及代码实现

JVM原理之完整的一次GC流程

Complete one-time GC process of JVM principle

Jenkins安装部署以及自动构建和发布jar应用

Web application security testing guide
随机推荐
网上有真实的兼职吗?大学生怎么找暑期兼职?
Jetpack compose menubar Desktop Menu from door opening to entry
CF【1700D】D. River Locks(dp、二分、数学)
read 文件一个字节实际会发生多大的磁盘IO?
JDBC入门学习(一)之DML操作
Ams:startactivity desktop launch application
Introduction to MySQL (I) grammar
App hangs~
H5 adaptive full screen
MCS:离散随机变量——Bernoulli分布
Go language - custom error
JVM原理之完整的一次GC流程
APP自动化测试-Appium进阶
When I was young, I thought my father was omnipotent
[microservices | Nacos] Nacos realizes data isolation of multi environment and multi tenant
markdown给图片加背景色
JDBC入门学习(三)之事务回滚功能的实现
人脸识别 确定阈值
Database connection exception: create connection error, url: jdbc: mysql://ip/ Database name, errorcode 0, state 08s01 problem handling
Chapter IX app project test (1)