自适应非极大值抑制算法
来源:互联网 发布:软件代理官网 编辑:程序博客网 时间:2024/06/05 08:40
自适应非极大值抑制算法
自适应非极大值抑制算法是论文Multi-Image Matching using Multi-Scale Oriented Patches提出的一种算法。基本思想是评估所有interesting point的极大区域,并进行排序。
具体来说,就是先选取很多的interesting point,组成集合S。对S中的每个点
算法效果如图:
过滤前
过滤后
评价
不同于传统非极大值抑制算法,ANMS算法不用选取阈值。然而带来的问题是它需要计算所有兴趣点之间的距离,所以会带来很大的时间复杂度。
实现代码如下
double computeR(Point2i x1, Point2i x2){ return norm(x1 - x2);}template < typename T>vector< size_t> sort_indexes(const vector< T> & v) { // initialize original index locations vector< size_t> idx(v.size()); for (size_t i = 0; i != idx.size(); ++i) idx[i] = i; // sort indexes based on comparing values in v sort(idx.begin(), idx.end(), [&v](size_t i1, size_t i2) {return v[i1] > v[i2]; }); return idx;}vector<KeyPoint> ANMS(const std::vector<KeyPoint>& kpts,int num = 500){ int sz = kpts.size(); double maxmum = 0; vector<double> roblocalmax(kpts.size()); vector<double> raduis(kpts.size(), INFINITY); for (size_t i = 0; i < sz; i++) { auto rp = kpts[i].response; if (rp > maxmum) maxmum = rp; roblocalmax[i] = rp*0.9; } auto max_response = maxmum*0.9; for (size_t i = 0; i < sz; i++) { double rep = kpts[i].response; Point2i p = kpts[i].pt; auto& rd = raduis[i]; if (rep>max_response) { rd = INFINITY; } else { for (size_t j = 0; j < sz; j++) { if (roblocalmax[j] > rep) { auto d = computeR(kpts[j].pt, p); if (rd > d) rd = d; } } } } auto sorted = sort_indexes(raduis); vector<KeyPoint> rpts; for (size_t i = 0; i < num; i++) { rpts.push_back(kpts[sorted[i]]); } return std::move(rpts);}
阅读全文
0 0
- 自适应非极大值抑制算法
- 非极大值抑制算法
- 非极大值抑制算法
- 非极大值抑制算法
- 非极大值抑制算法
- 非极大值抑制算法 NMS
- matlab下 非极大值抑制算法
- 非极大值抑制算法 (NMS)
- NMS—非极大值抑制算法
- 非极大值抑制
- matlab 非极大值抑制
- NMS非极大值抑制
- 非极大值抑制
- 非极大值抑制 NMS
- 非极大值抑制原理
- 非极大值抑制NMS
- MOPS中ANMS(非极大值抑制)算法讨论
- 非极大值抑制(NMS)
- apache和tomcat无法启动,调试小技巧
- Android App 改变状态栏颜色
- 木乃伊迷宫(存在一些bug,后面有改过的)
- 基于ionic2 的移动app开发过程《3》
- 怎么在eclipse中找回丢失的R.iava
- 自适应非极大值抑制算法
- Android自定义view浅谈(一)setContentView
- css轮播
- Zabbix服务器的搭建与应用(三)-------安装Zabbix
- ajax请求返回重定向信息
- 谷歌浏览器的timeline工具的使用
- AspectJ教程--AOP面向切面编程框架(Android)
- 转码性能的改进
- ubuntu彻底删除用户