特征点,词袋,分类及其它
看了不少论文,感觉论文里写的东西和我想象的还是很不一样
先自己再做点实现推进一下自己的想法吧
毕竟那几篇论文我是仔细看了也没看懂个啥
主要目标:
1.看看sift, orb都会挑选一些什么样的点
2.这些特征点在词袋模型下的分类
3.单纯对这些点进行分类
主要在python上实现,图个方便,
opencv-python3.4之后好像就没有提取sift特征的API了。https://www.jianshu.com/p/178feb1925f4,要下载个3.1的,
ob又这么慢,换源都不行,conda config --add channels https://repo.continuum.io/pkgs/main/,用了这个没见过的源终于可以了
opencv要安装contrib版本的,
(转载)在pypi中解释到:
- run
pip install opencv-python
if you need only main modules - run
pip install opencv-contrib-python
if you need both main and contrib modules (check extra modules listing from OpenCV documentation)
opencv-python 是只包含了主要模块的包,opencv-contrib-python包含了主要模块以及扩展模块,扩展模块主要是包含了一些带专利的收费算法(如shift特征检测)以及一些在测试的新的算法(稳定后会合并到主要模块)。
jupyter添加内核的时候又出了问题,如果不加--user选项,就会加出来一个py2.7的。
https://blog.csdn.net/u012418164/article/details/104180360
1.
看了一下,SIFT特征点也不是全部都在边上,像键盘这种,就很多都在内部,内部的边上。
但是对于显示器这种东西,它自己内部没什么特征,那就只能在边界上了,懂了。
SIFT有852个点,每个点的描述子是128维,好像也都是整数。
SIFT的特征点数似乎是没有数量要求的,每张图不一样,不过分布的很均匀还。
换成ORB的话,特征点少了好多好多啊,,,,,ORB就只有零星的几个点了。这是为什么
噢噢,实际上,orb也提取了500个点,但是因为没有什么优化策略,500个点都很集中似乎.
一个orb描述子似乎就32维,也不是很多。还都是整数,怪怪的。
2.基于词袋的分类
基本上跟着https://www.cnblogs.com/August2019/p/12680602.html这个代码跑了一下,没有用太多图片训练,就tum数据集里找了几张,效果还可以吧。