最近项目中的GMM算法,需要改成GPU版,以降低CPU占用。重新编译了opencv2.4.13,网上很多教程,不再赘述。说一下自己遇到的坑。项目用caffee,cuda版本8.0,opencv2.4.10.刚开始编译生成时,一直不成功。可能与cuda版本与opencv版本不匹配有关。后来换成opencv2.4.13,两个多小时编译完成。
GPU版mog2用起来与普通版本无异,比较简单,代码如下:
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/video/background_segm.hpp>
#include <opencv2/opencv.hpp>
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/core/mat.hpp>
#include <opencv2/gpu/gpu.hpp>
#include<cuda_runtime.h>
#include<chrono>
#include<iostream>
using namespace std;
using namespace cv;
Ptr<gpu::MOG2_GPU> pGPUMog2;
void getTargetsGPU(Mat img)
{
gpu::GpuMat gpu_img(img)