2

适用于 Windows 的 OpenCV x64 发行版(通过 emgucv)有近半 GB 的 DLL,包括一个 224Mb opencv_gpu.dll。似乎任何人都不太可能产生这么多的代码,那么给出了什么?大型嵌入式资源?代码生成膨胀(这似乎不太可能,因为它是一个原生 c/c++ 项目)

我想用它来做人脸识别,但是在git中有这么大的二进制依赖是有问题的,而且在源代码控制之外进行管理很麻烦。

[更新] 没有嵌入式资源(至少是 Windows DLL 通常有的那种,但由于这是一个跨平台产品,我不确定这是否重要。)也许有很多初始化的 C 表结构来执行矩阵运算?

4

1 回答 1

5

的大小opencv_gpu是为多个 CUDA 架构版本编译的大量模板实例化的结果。

例如卷积:

  • 7 种数据类型(从CV_8UCV_64F
  • 约 30 个已编码大小的卷积核
  • 8 CUDA 架构(bin:1.1 1.2 1.3 2.0 2.1(2.0) 3.0 + ptx:2.0 3.0)

这会产生大约 1700 个卷积变体。对于最新的 OpenCV 版本,这种方式opencv_gpu可以增长到 1 Gb。

如果您不打算使用任何 CUDA 加速,那么您可以安全地删除 opencv_gpu.dll

于 2013-06-15T15:06:21.293 回答