

環境は  
Ubuntu 16.04  
CUDA 9.1  
Opencv 3.3.0

YOLOv3をGPUを使って利用しようと考えたのですが、makeでエラーが出ます。  
以下行ったこと

[code]

    git clone https://github.com/pjreddie/darknet
    cd darknet
    vim Makefile #GPU=1, OPENCV=1に変更
    make
    
[/code]

エラー内容

[code]

    gcc -Iinclude/ -Isrc/ -DOPENCV `pkg-config --cflags opencv`  -DGPU -I/usr/local/cuda-9.1/include/ -Wall -Wno-unused-result -Wno-unknown-pragmas -Wfatal-errors -fPIC -Ofast -DOPENCV -DGPU -c ./src/gemm.c -o obj/gemm.o
    In file included from /usr/local/include/opencv2/core/types_c.h:59:0,
                     from /usr/local/include/opencv2/core/core_c.h:48,
                     from /usr/local/include/opencv2/highgui/highgui_c.h:45,
                     from include/darknet.h:25,
                     from ./src/utils.h:5,
                     from ./src/gemm.c:2:
    /usr/local/include/opencv2/core/cvdef.h:485:1: error: unknown type name ‘namespace’
     namespace cv {
    compilation terminated due to -Wfatal-errors.
    Makefile:85: recipe for target 'obj/gemm.o' failed
    make: *** [obj/gemm.o] Error 1
    
[/code]


CC BY-SA 3.0
2018-04-10T13:32:10.030
43138
2018-04-15T15:05:31.237
2018-04-11T10:39:04.820
25909
25909
question
ubuntu 深層学習 gpu
darknet YOLOv3 GPU使用時のmakeについて


OpenCV 関係のエラーです。OpenCV の名前空間自体が見つけられていないので、おそらく OpenCV
が上手く認識されていないのだと思います。OpenCV まわりの環境設定を見直してください。

また、今回のご質問とはバージョンが違いますが、OpenCV 3.4.1 では OpenCV
自体にバグがありビルドできません。修正されるのを待つか、ダウングレードしてください([参考](https://github.com/pjreddie/darknet/issues/485))。なお今回のご質問と同じバージョンである
OpenCV 3.3.0 の場合、こちらの環境ではビルドに成功しています。


CC BY-SA 3.0
2018-04-15T05:47:20.010
43253
2018-04-15T05:47:20.010
19110
43138
answer


結論としてOpencv 3.4.0でもdarknetの`make`が実行できました。  
様々なことを試していたためどれが本当に効いたのかわかりませんが、私が行ったことを記載しておきます。  
darknetのMakefileでまず`OPENCV=1`にして他を0にして`make`する。  
`make`が実行できた後に`make clean`を行う。  
最後にdarknetのMakefileで`OPENCV=1, GPU=1`にして`make`すると実行できました。


CC BY-SA 3.0
2018-04-15T15:05:31.237
43274
2018-04-15T15:05:31.237
25909
43138
answer