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的主要内容,如果未能解决你的问题,请参考以下文章

具有内置 CUDA 库/功能的 OpenCV-3

opencv3.3 CUDA 初学实例

OpenCV 3.2.0 +Win10+ CUDA 8.0+ VS2013 编译

opencv4.2+opencv_contrib编译gpu加速带cuda和CUDnn(二)

OpenCV配置cuda

OpenCV二维Mat数组(二级指针)在CUDA中的使用