Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4511204
  • 博文数量: 356
  • 博客积分: 10458
  • 博客等级: 上将
  • 技术积分: 4734
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-24 14:59
文章分类

全部博文(356)

文章存档

2020年(17)

2019年(9)

2018年(26)

2017年(5)

2016年(11)

2015年(20)

2014年(2)

2013年(17)

2012年(15)

2011年(4)

2010年(7)

2009年(14)

2008年(209)

分类: C/C++

2018-08-04 11:25:41

环境PC机, 对比数据:img1/small_7868_1.jpg 与 test/0.jpg ,两张图片是对一同一页书进行拍照获得,两张角度不一样,大小也不一样。

SIFT默认参数
const Ptr& indexParams=new flann::KDTreeIndexParams(4);
const Ptr& searchParams=new flann::SearchParams(64);
matcher = cv::FlannBasedMatcher(indexParams, searchParams);

不降维       未剔误匹配点  RANSAC之后的匹配点
                67            58
列降维之后   未剔误匹配点  RANSAC之后的匹配点
9               80            31
15              55            39
21              66            46
27              68            50
32              68            55
SIFT降维之后,维度越低真实匹配点就越少。


SURF
const Ptr& indexParams=new flann::KDTreeIndexParams(4);
const Ptr& searchParams=new flann::SearchParams(64);
matcher = cv::FlannBasedMatcher(indexParams, searchParams);

不降维       未剔误匹配点  RANSAC之后的匹配点
                  49            28

列降维之后   未剔误匹配点  RANSAC之后的匹配点
9                108              19
15                76              28
21                59              27
27                55              29
32                47              27
比SIFT速度快,但是匹配点数差一些, PCA处理的数据对结果影响不大,当15列时与默认的非PCA处理的效果差不多。
另外如果在SURF::create()参数bool upright=false改成true会加快速度,但是它是去掉了特征点的方向了,所以旋转后的图片匹配很差。


ORB, cv::FlannBasedMatcher matcher = cv::FlannBasedMatcher(cv::makePtr(10, 20, 2));
默认不经过PCA处理情况:
nfeatures                 未剔误匹配点时  RANSAC后match
500                       16                  11
550                       15                  11
600                       19                  14
650                       21                  18
700                       24                  17
750                       21                  12
800                       20                  17
850                       21                  15
900                       25                  17
950                       23                  20
1000                      20                  16


PCA后如下表:
使用ORB, cv::FlannBasedMatcher matcher = cv::FlannBasedMatcher(cv::makePtr(10, 20, 2)); 进行查找匹配,
会发现PCA之后只有为32列的时候匹配才准确,其他的要么没有匹配,要么就是匹配错误。也就是PCA后再用Lsh效果很差。
500     9     17    5
500     15     2    0
500     21     0    0
500     27     1    0
500     32     10    9
550     9     10    4
550     15     1    0
550     21     1    0
550     27     0    0
550     32     11    9
600     9     10    4
600     15     0    0
600     21     1    0
600     27     0    0
600     32     14    11
650     9     18    4
650     15     1    0
650     21     0    0
650     27     0    0
650     32     18    14
700     9     17    4
700     15     5    0
700     21     1    0
700     27     0    0
700     32     19    15
750     9     12    4
750     15     3    0
750     21     0    0
750     27     0    0
750     32     18    13
800     9     8    4
800     15     5    0
800     21     0    0
800     27     0    0
800     32     17    16
850     9     22    5
850     15     0    0
850     21     1    0
850     27     0    0
850     32     16    12
900     9     10    5
900     15     3    0
900     21     2    0
900     27     0    0
900     32     14    13
950     9     23    5
950     15     2    0
950     21     1    0
950     27     0    0
950     32     16    15
1000     9     24    5
1000     15     3    0
1000     21     0    0
1000     27     1    0
1000     32     18    14

Kdtree来查找匹配点时, 1000以下的匹配点不靠谱,使用PCA必须大于1000, 不然虽然有match但是其实是不相关的点, 1000到2000之间虽然数量大但是匹配点却也不多,大多只有个位数。
nfeatures                 cols   未调RANSAC  RANSAC后match(ORB时这一列数据很多也是误匹配点)
500                        9         17           5
500                        15         7           4
500                        21         7           4
500                        27         5           0
500                        32         4           4
550                        9         19           5
550                        15         8           4
550                        21         8           4
550                        27         6           4
550                        32         5           0
600                        9         18           5
600                        15         9           4
600                        21         9           5
600                        27         5           4
600                        32         5           4
650                        9         24           5
650                        15         11           4
650                        21         8           4
650                        27         6           4
650                        32         5           0
700                        9         26           5
700                        15         12           4
700                        21         7           4
700                        27         6           4
700                        32         5           0
750                        9         29           5
750                        15         17           5
750                        21         9           4
750                        27         8           4
750                        32         8           4
800                        9         36           6
800                        15         16           5
800                        21         12           4
800                        27         7           4
800                        32         6           4
850                        9         44           6
850                        15         14           5
850                        21         12           4
850                        27         8           4
850                        32         6           4
900                        9         44           6
900                        15         16           5
900                        21         13           5
900                        27         8           4
900                        32         7           4
950                        9         39           6
950                        15         18           6
950                        21         15           6
950                        27         9           5
950                        32         8           5
1000                        9         39           7
1000                        15         18           6
1000                        21         14           6
1000                        27         10           5
1000                        32         8           4
1050                        9         39           6
1050                        15         20           6
1050                        21         15           6
1050                        27         9           4
1050                        32         8           4
1100                        9         45           6
1100                        15         18           6
1100                        21         13           6
1100                        27         9           4
1100                        32         9           4
1150                        9         46           7
1150                        15         19           5
1150                        21         18           6
1150                        27         9           4
1150                        32         7           4
1200                        9         49           9
1200                        15         18           6
1200                        21         15           5
1200                        27         8           4
1200                        32         7           4
1250                        9         53           9
1250                        15         18           6
1250                        21         14           5
1250                        27         7           4
1250                        32         6           4
1300                        9         50           7
1300                        15         16           5
1300                        21         16           4
1300                        27         7           4
1300                        32         6           4
1350                        9         49           8
1350                        15         19           6
1350                        21         12           5
1350                        27         8           5
1350                        32         8           4
1400                        9         52           7
1400                        15         21           6
1400                        21         16           6
1400                        27         7           5
1400                        32         7           4
1450                        9         48           8
1450                        15         24           7
1450                        21         17           6
1450                        27         7           5
1450                        32         8           5
1500                        9         49           7
1500                        15         22           8
1500                        21         14           6
1500                        27         8           5
1500                        32         9           5
1550                        9         45           7
1550                        15         23           8
1550                        21         15           6
1550                        27         8           5
1550                        32         8           4
1600                        9         49           9
1600                        15         24           9
1600                        21         12           5
1600                        27         9           5
1600                        32         11           8
1650                        9         49           7
1650                        15         26           10
1650                        21         15           7
1650                        27         10           6
1650                        32         7           5
1700                        9         55           7
1700                        15         27           11
1700                        21         19           8
1700                        27         10           6
1700                        32         13           9
1750                        9         56           9
1750                        15         31           12
1750                        21         18           9
1750                        27         10           6
1750                        32         12           7
1800                        9         61           10
1800                        15         24           8
1800                        21         20           9
1800                        27         11           6
1800                        32         9           6
1850                        9         61           8
1850                        15         25           9
1850                        21         20           8
1850                        27         10           7
1850                        32         15           10
1900                        9         57           8
1900                        15         23           9
1900                        21         19           8
1900                        27         10           6
1900                        32         12           8
1950                        9         61           8
1950                        15         27           10
1950                        21         19           9
1950                        27         11           6
1950                        32         13           8
2000                        9         58           9
2000                        15         23           10
2000                        21         18           8
2000                        27         10           6
2000                        32         8           5
试过一种极端情况从一张图片裁剪一部分出来与原图匹配时,正常的不经过PCA处理,match大小为130左右,加了PCA处理,匹配数会下降很多变成20多
所以ORB特征点经过PCA处理后匹配效果差很多。

作者:帅得不敢出门

阅读(2329) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~