2017-05-29 148 views
0

我已經comipled與GPU朱古力禁用,則openpose編譯告訴未定義參考CV :: VideoCapture :: VideoCapture(CV ::字符串常量和)

cp caffe/build/Makefile openpose/Makefile.conf 

運行

make all -j 6 

了這些錯誤:

-- Generating done 
-- Build files have been written to: /path/to/caffe/build 
CXX/LD -o ._release/examples/tutorial_thread/1_openpose_read_and_display.bin 
._release/lib/libopenpose.so: undefined reference to `cv::VideoCapture::VideoCapture(cv::String const&)' 
._release/lib/libopenpose.so: undefined reference to `cv::VideoCapture::set(int, double)' 
._release/lib/libopenpose.so: undefined reference to `op::renderPartAffinityFieldGpu(float*, op::PoseModel, cv::Size_<int> const&, float const*, cv::Size_<int> const&, float, int, float)' 
._release/lib/libopenpose.so: undefined reference to `cv::VideoCapture::release()' 
._release/lib/libopenpose.so: undefined reference to `op::renderBodyPartsGpu(float*, op::PoseModel, cv::Size_<int> const&, float const*, cv::Size_<int> const&, float, float)' 
._release/lib/libopenpose.so: undefined reference to `cv::VideoCapture::operator>>(cv::Mat&)' 

找不到OpenCV的,我編譯OpenCV的最新從源3.2-dev的,所有的OpenCV程序(包括C++的蟒蛇)工作,所以爲什麼不能openpose找到opencv?

回答

1

Caffe實際上認可opencv,那些引用是在opencv3.2中丟棄的方法,但在opencv 3.1.0或更早版本中可用。安裝3.2時出現同樣的問題,最終降級到3.1.0解決了問題對我來說,here是一個不錯的指南,安裝opencv 3.1.0,並根據

this討論,似乎標準是支持opencv,在Ubuntu源中可用,我認爲你不能安裝opencv3。 2通過apt-get現在,只需要從源生成

+0

謝謝,我已經降級到3.1,和uncommet:CPU_ONLY:= 1 OPENCV_VERSION:= 3的OpenCV相關的錯誤了,但是這些錯誤: ._release/LIB/libopenpose.so:未定義參考'運算:: renderPartAffinityFieldGpu (float *,op :: PoseModel,cv :: Size_ const&,float const *,cv :: Size_ const&,float,int,float)'仍然存在。 –

+0

我認爲它與openpose有關,我想你必須通過檢查openpose的哪個版本的opencv並降級或升級到新版本來做同樣的過程,這些類型的錯誤表明openpose實現了一些功能,在你目前的opencv中是不可用的。你也可以禁用/註釋#USE CUDNN以防你使用CPU的時候,因爲當你啓用它時...一些函數會做一些總是失敗的cuda斷言檢查,因爲你沒有使用CUDA – Eliethesaiyan

+0

謝謝,我想這是由於他們不知道CUDA已被禁用,導致這些錯誤的實例彙編,所以他們仍然嘗試使用CUDA,而我只是不知道如何從彙編中刪除這些示例 –

0

I have compiled caffe with GPU disabled: 您不能禁用GPU對於OpenPose(也不是OpenPose將使用的Caffe)。我很抱歉,但CPU代碼根本沒有完成(並且由於速度非常慢,因此目前不會完成)。你將不得不使用CUDA + cuDNN。

爲了解決OpenCV未找到問題,您需要在Makefile.conf文件(來自OpenPose和Caffe的文件)中啓用,使用OpenCV 3標誌。