HelloCodeWrold

背景

当前项目需求是使用GPU进行多路视频解码处理,解码帧继续进行ORB特征提取,然后生成vlad聚合特征,最后对其数据进行检索

问题

  • NVIDIA Video Codec库提供的解码实例中对于头部有些许问题的视频无法处理

这个还没有解决 想要从ffmpeg入手看看能否搞定 因为解封装的操作是ffmepg库的接口调用实现

  • NVIDIA多线程处理结束后从GPU取出cv::cuda::GpuMat时发生内存错误

这个已经解决
1、多线程中每个线程需要使用独立的一个CuContext cuda上下文进行处理 之前没有注意到这个问题
2、使用全局变量stl的容器进行缓存时,vector的push_back操作是浅拷贝 导致出现问题
push_back的 参数使用 GpuMat.clone() 函数进行深拷贝 解决

  • ORB处理数据使用的是灰度图像,所以当Video Codec库解码数据是NV12类型时,直接提取Y分量即可,不用做YUV–>RGB的转换,前期浪费了一个星期研究这个用不到的转换

需求开发的时候有时候需要兼顾前后流程,不然白白浪费时间

参考

1、NVIDIA Video Codec 9.1
2、Opencv 3.4.4
3、DBoW3
4、Faiss 1.5.3
5、Cuda 10.1

分类:

技术点:

相关文章:

  • 2021-12-14
  • 2021-07-05
  • 2021-11-26
  • 2021-10-28
  • 2021-09-22
  • 2021-08-21
  • 2021-07-14
猜你喜欢
  • 2021-09-22
  • 2021-10-12
  • 2022-12-23
  • 2022-01-05
  • 2022-12-23
  • 2021-10-25
相关资源
相似解决方案