@w460461339
2019-03-11T16:51:29.000000Z
字数 862
阅读 1648
顺丰工作
对python下的opencv中的sift操作模块寻找更快的实现。
参考:
https://github.com/silx-kit/silx
这个应该是尝试最深的一种,但是在运行它给的例子的时候,出现了以下错误:
AttributeError: 'NoneType' object has no attribute 'create_context'
在参考:https://github.com/silx-kit/silx/issues/1279
解决的时候,发现答主说是缺少驱动…然而不知道怎么安装opencl所需要的驱动。
另外,问题提出人也并没有走安装驱动的方式解决问题,他貌似后来是换了个机子……
参考:
https://blog.csdn.net/yhyhbo/article/details/54620178
严格来说,这个不是针对SIFT操作的提速,而是SIFT提取特征后,需要用knn进行匹配,而此时若是能够对输入KNN的矩阵做一个降维,速度想必能够提升很多。
原来输入KNNMatcher的特征点矩阵大概是[6350,128],即每个特征点用128维向量表示。
我尝试使用SVD降维至32维后,速度并没有明显提升…算球。
准确的说还没尝试…感觉是个大坑= -
这个是CUDA实现的sift,维护的很勤快,应该能用:
https://github.com/Celebrandil/CudaSift
python调用c++网上很多方法,可以试试:
https://segmentfault.com/a/1190000012730513
https://github.com/ducha-aiki/numpy-sift/blob/master/example.ipynb
这个我试了下…貌似只能用65size的,不知道是我没用对还是怎么着= -
SURF和ORB,检测到的点都太少,无法满足匹配要求。