CUDA 相当于 OpenCV 3 中的 estimateRigidTransform
Posted
技术标签:
【中文标题】CUDA 相当于 OpenCV 3 中的 estimateRigidTransform【英文标题】:CUDA equivalent of estimateRigidTransform in OpenCV 3 【发布时间】:2016-06-14 08:03:07 【问题描述】:我正在使用 OpenCV 进行视频稳定项目,并且我的 CPU 实现正在运行,但性能需要改进,因此我正在尝试将大部分处理转移到 GPU。
目前的实现主要使用这四个OpenCV函数:
cv::goodFeaturesToTrack
cv::calcOpticalFlowPyrLK
cv::estimateRigidTransform
cv::warpAffine
到目前为止,我在 GPU 上找到了以下等价物:
cv::cuda::createGoodFeaturesToTrackDetector
cv::cuda::SparsePyrLKOpticalFlow
cv::cuda::warpAffine
是否存在与 estimateRigidTransform
等效的 CUDA?
【问题讨论】:
我不确定你是否想要一个。它在 cpu 上应该非常快,并且将其加载到 GPU 的开销可能会使它因点数少而变慢。 estimateRigidTransform 使用最小二乘法,可以使用 cuda cuSolver 计算。如果你真的想在 GPU 上实现它应该不难 嘿@taarraas 感谢您的评论。我正在将视频稳定性重写为在 GPU 上 100%,所以我不想下载/上传点以在 CPU 上运行estimateRigidTransform
。如果 GPU 上没有现有的实现,那么我会在 CUDA 中编写它,只是想我会问一下,以防我错过了什么:)
【参考方案1】:
OpenCV 没有在 CUDA 上实现 estimateRigidTransform。 github上有一个基于opencv的项目,具有计算单应性和估计刚性变换的功能:https://github.com/danielsuo/cuSIFT
这是您需要的功能: https://github.com/danielsuo/cuSIFT/blob/master/extras/rigidTransform.cu
【讨论】:
以上是关于CUDA 相当于 OpenCV 3 中的 estimateRigidTransform的主要内容,如果未能解决你的问题,请参考以下文章
OpenCV 3.2.0 +Win10+ CUDA 8.0+ VS2013 编译