最近在做yolo了识别,选了同样基于darknet的yolo-fastest。
git:https://github.com/dog-qiuqiu/Yolo-Fastest
开发环境:Window10 + VS 2019
clone完以后按照教程编译了一个NO GPU的版本,测试demo运行正常,
教程传送门:window版本YOLO-Fastest从Darknet源码编译、测试_荪荪的博客-CSDN博客
然后准备使用GPU做测试,下载了CUDA10.1,安装,配置CMake,执行Configure,提示CUDA not found,如下图
明明已经安装了CUDA ,为何还是提示未找到,然后翻了一下yolo-fastest的CMakeLists内容,找到这句log的位置,如下图:
这个提示就很明确了,就是在执行了check_language(CUDA)后依然没有找到CMAKE_CUDA_COMPILER这个环境变量,打开系统的环境变量列表,确实没有CUDA相关项,这也比较奇怪,明明已经正常安装CUDA。
Google转了一圈,发现原来CUDA需要安装完全版,而我选择的的是精简版。
卸载CUDA,重新安装完全版,然后Configure
(PS:理论上如果一开是就完全安装CUDA的话,就不会有这个问题了,😂😂😂)
(PPS:因为我们需要将darknet编译成vs工程,因此在安装CUDA时,一定要勾选安装Visual Studio Integration)
关于CUDA安装和卸载的教程,这里就不再赘述,如有疑问的地方,参见此贴:
Win10中CUDA、cuDNN的安装与卸载_cuda 卸载-CSDN博客
CMake依然过不去,还是提示CUDA not found,打开CMake的入口环境变量列表发现还是没有CUDA的相关项,但是系统环境变量已经有了。
是不是因为在重新安装CUDA的时候,没有关闭CMake窗口导致没有重新加载环境变量。
尝试关闭CMake窗口重新打开,为了保证万全,把之前CMake输出目录里的生成文件全部清空,然后检查环境变量,发现已经正常读取到了CUDA_PATH,如下图所示:
再次执行Configure,顺利通过。
直接Generate生成。终于完成了。😄😄😄😄
PS:遇到这个坑的主要原因还是CUDA没有正确安装,如果在确认CUDA正常安装后,还是提示CUDA not found的话,可以尝试手动添加CUDA的两个环境变量,或者在CMake的的Environment Editor里添加环境变量,应该也能解决问题。