weiliu89 / caffe

Caffe: a fast open framework for deep learning.
http://caffe.berkeleyvision.org/
Other
4.77k stars 1.67k forks source link

error while compiling for Movidius NCSDK 2 #969

Open patvdleer opened 5 years ago

patvdleer commented 5 years ago

Issue summary

git clone -b ncsdk2 http://github.com/Movidius/ncsdk
cd ncsdk
make install

I did edit the install.sh to not break on Ubuntu 18.04 but this doesn't explain the error below.

    if [ "${OS_DISTRO,,}" = "ubuntu" ] && [ ${OS_VERSION} = 1604 ]; then
        [ "${VERBOSE}" = "yes" ] && echo "Installing on Ubuntu 16.04"
    elif [ "${OS_DISTRO,,}" = "ubuntu" ] && [ ${OS_VERSION} = 1804 ]; then
        [ "${VERBOSE}" = "yes" ] && echo "Installing on Ubuntu 18.04"
    elif [ "${OS_DISTRO,,}" = "raspbian" ] && [ ${OS_VERSION} -ge 91 ]; then
        [ "${VERBOSE}" = "yes" ] && echo "Installing on Raspbian Stretch"
    elif [ "${OS_DISTRO,,}" = "raspbian" ] && [ ${OS_VERSION} -ge 80 ] && [ ${OS_VERSION} -lt 90 ]; then
        echo -e "${RED} You are running Raspbian Jessie, which is not supported by NCSDK."
        echo -e "Please upgrade to Raspbian Stretch and then install NCSDK."

Steps to reproduce

If you are having difficulty building Caffe or training a model, please ask the caffe-users mailing list. If you are reporting a build error that seems to be due to a bug in Caffe, please attach your build configuration (either Makefile.config or CMakeCache.txt) and the output of the make (or cmake) command.

Your system configuration

Operating system: Ubuntu 18.04.01

[ 64%] Building CXX object src/caffe/CMakeFiles/caffe.dir/util/db.cpp.o
[ 64%] Building CXX object src/caffe/CMakeFiles/caffe.dir/util/db_leveldb.cpp.o
/opt/movidius/ssd-caffe/src/caffe/layers/window_data_layer.cpp: In member function ‘virtual void caffe::WindowDataLayer<Dtype>::load_batch(caffe::Batch<Dtype>*)’:
/opt/movidius/ssd-caffe/src/caffe/layers/window_data_layer.cpp:293:42: error: ‘CV_LOAD_IMAGE_COLOR’ was not declared in this scope
         cv_img = cv::imread(image.first, CV_LOAD_IMAGE_COLOR);
                                          ^~~~~~~~~~~~~~~~~~~
/opt/movidius/ssd-caffe/src/caffe/layers/window_data_layer.cpp:293:42: note: suggested alternative: ‘CV_IS_IMAGE_HDR’
         cv_img = cv::imread(image.first, CV_LOAD_IMAGE_COLOR);
                                          ^~~~~~~~~~~~~~~~~~~
                                          CV_IS_IMAGE_HDR
[ 65%] Building CXX object src/caffe/CMakeFiles/caffe.dir/util/db_lmdb.cpp.o
[ 65%] Building CXX object src/caffe/CMakeFiles/caffe.dir/util/hdf5.cpp.o
[ 65%] Building CXX object src/caffe/CMakeFiles/caffe.dir/util/im2col.cpp.o
/opt/movidius/ssd-caffe/src/caffe/layers/video_data_layer.cpp: In member function ‘virtual void caffe::VideoDataLayer<Dtype>::DataLayerSetUp(const std::vector<caffe::Blob<Dtype>*>&, const std::vector<caffe::Blob<Dtype>*>&)’:
/opt/movidius/ssd-caffe/src/caffe/layers/video_data_layer.cpp:55:30: error: ‘CV_CAP_PROP_FRAME_COUNT’ was not declared in this scope
     total_frames_ = cap_.get(CV_CAP_PROP_FRAME_COUNT);
                              ^~~~~~~~~~~~~~~~~~~~~~~
/opt/movidius/ssd-caffe/src/caffe/layers/video_data_layer.cpp:60:14: error: ‘CV_CAP_PROP_POS_FRAMES’ was not declared in this scope
     cap_.set(CV_CAP_PROP_POS_FRAMES, 0);
              ^~~~~~~~~~~~~~~~~~~~~~
[ 67%] Building CXX object src/caffe/CMakeFiles/caffe.dir/util/im_transforms.cpp.o
[ 67%] Building CXX object src/caffe/CMakeFiles/caffe.dir/util/insert_splits.cpp.o
[ 68%] Building CXX object src/caffe/CMakeFiles/caffe.dir/util/io.cpp.o
src/caffe/CMakeFiles/caffe.dir/build.make:2126: recipe for target 'src/caffe/CMakeFiles/caffe.dir/layers/window_data_layer.cpp.o' failed
make[3]: *** [src/caffe/CMakeFiles/caffe.dir/layers/window_data_layer.cpp.o] Error 1
make[3]: *** Waiting for unfinished jobs....
/opt/movidius/ssd-caffe/src/caffe/util/bbox_util.cpp: In function ‘void caffe::VisualizeBBox(const std::vector<cv::Mat>&, const caffe::Blob<Dtype>*, float, const std::vector<cv::Scalar_<double> >&, const std::map<int, std::__cxx11::basic_string<char> >&, const string&)’:
/opt/movidius/ssd-caffe/src/caffe/util/bbox_util.cpp:2186:42: error: ‘CV_FILLED’ was not declared in this scope
                   CV_RGB(255, 255, 255), CV_FILLED);
                                          ^~~~~~~~~
/opt/movidius/ssd-caffe/src/caffe/util/bbox_util.cpp:2186:42: note: suggested alternative: ‘CLD_KILLED’
                   CV_RGB(255, 255, 255), CV_FILLED);
                                          ^~~~~~~~~
                                          CLD_KILLED
/opt/movidius/ssd-caffe/src/caffe/util/bbox_util.cpp:2221:48: error: there are no arguments to ‘CV_FOURCC’ that depend on a template parameter, so a declaration of ‘CV_FOURCC’ must be available [-fpermissive]
         cv::VideoWriter outputVideo(save_file, CV_FOURCC('D', 'I', 'V', 'X'),
                                                ^~~~~~~~~
/opt/movidius/ssd-caffe/src/caffe/util/bbox_util.cpp:2221:48: note: (if you use ‘-fpermissive’, G++ will accept your code, but allowing the use of an undeclared name is deprecated)
/opt/movidius/ssd-caffe/src/caffe/util/bbox_util.cpp: In instantiation of ‘void caffe::VisualizeBBox(const std::vector<cv::Mat>&, const caffe::Blob<Dtype>*, float, const std::vector<cv::Scalar_<double> >&, const std::map<int, std::__cxx11::basic_string<char> >&, const string&) [with Dtype = float; std::__cxx11::string = std::__cxx11::basic_string<char>]’:
/opt/movidius/ssd-caffe/src/caffe/util/bbox_util.cpp:2240:43:   required from here
/opt/movidius/ssd-caffe/src/caffe/util/bbox_util.cpp:2221:57: error: ‘CV_FOURCC’ was not declared in this scope
         cv::VideoWriter outputVideo(save_file, CV_FOURCC('D', 'I', 'V', 'X'),
                                                ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
/opt/movidius/ssd-caffe/src/caffe/util/bbox_util.cpp:2221:57: note: suggested alternative: ‘CV_16UC’
         cv::VideoWriter outputVideo(save_file, CV_FOURCC('D', 'I', 'V', 'X'),
                                                ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
                                                CV_16UC
/opt/movidius/ssd-caffe/src/caffe/util/bbox_util.cpp: In instantiation of ‘void caffe::VisualizeBBox(const std::vector<cv::Mat>&, const caffe::Blob<Dtype>*, float, const std::vector<cv::Scalar_<double> >&, const std::map<int, std::__cxx11::basic_string<char> >&, const string&) [with Dtype = double; std::__cxx11::string = std::__cxx11::basic_string<char>]’:
/opt/movidius/ssd-caffe/src/caffe/util/bbox_util.cpp:2246:43:   required from here
/opt/movidius/ssd-caffe/src/caffe/util/bbox_util.cpp:2221:57: error: ‘CV_FOURCC’ was not declared in this scope
/opt/movidius/ssd-caffe/src/caffe/util/bbox_util.cpp:2221:57: note: suggested alternative: ‘CV_16UC’
         cv::VideoWriter outputVideo(save_file, CV_FOURCC('D', 'I', 'V', 'X'),
                                                ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
                                                CV_16UC
src/caffe/CMakeFiles/caffe.dir/build.make:2102: recipe for target 'src/caffe/CMakeFiles/caffe.dir/layers/video_data_layer.cpp.o' failed
make[3]: *** [src/caffe/CMakeFiles/caffe.dir/layers/video_data_layer.cpp.o] Error 1
/opt/movidius/ssd-caffe/src/caffe/util/im_transforms.cpp: In function ‘void caffe::CenterObjectAndFillBg(const cv::Mat&, bool, cv::Mat*)’:
/opt/movidius/ssd-caffe/src/caffe/util/im_transforms.cpp:246:39: error: ‘CV_BGR2GRAY’ was not declared in this scope
     cv::cvtColor(in_img, in_img_gray, CV_BGR2GRAY);
                                       ^~~~~~~~~~~
/opt/movidius/ssd-caffe/src/caffe/util/im_transforms.cpp:248:19: error: ‘CV_THRESH_BINARY_INV’ was not declared in this scope
                   CV_THRESH_BINARY_INV | CV_THRESH_OTSU);
                   ^~~~~~~~~~~~~~~~~~~~
/opt/movidius/ssd-caffe/src/caffe/util/im_transforms.cpp:248:42: error: ‘CV_THRESH_OTSU’ was not declared in this scope
                   CV_THRESH_BINARY_INV | CV_THRESH_OTSU);
                                          ^~~~~~~~~~~~~~
/opt/movidius/ssd-caffe/src/caffe/util/im_transforms.cpp:248:42: note: suggested alternative: ‘CV__TEST_GT’
                   CV_THRESH_BINARY_INV | CV_THRESH_OTSU);
                                          ^~~~~~~~~~~~~~
                                          CV__TEST_GT
/opt/movidius/ssd-caffe/src/caffe/util/im_transforms.cpp:251:19: error: ‘CV_THRESH_BINARY_INV’ was not declared in this scope
                   CV_THRESH_BINARY_INV | CV_THRESH_OTSU);
                   ^~~~~~~~~~~~~~~~~~~~
/opt/movidius/ssd-caffe/src/caffe/util/im_transforms.cpp:251:42: error: ‘CV_THRESH_OTSU’ was not declared in this scope
                   CV_THRESH_BINARY_INV | CV_THRESH_OTSU);
                                          ^~~~~~~~~~~~~~
/opt/movidius/ssd-caffe/src/caffe/util/im_transforms.cpp:251:42: note: suggested alternative: ‘CV__TEST_GT’
                   CV_THRESH_BINARY_INV | CV_THRESH_OTSU);
                                          ^~~~~~~~~~~~~~
                                          CV__TEST_GT
/opt/movidius/ssd-caffe/src/caffe/util/im_transforms.cpp: In function ‘cv::Mat caffe::ApplyNoise(const cv::Mat&, const caffe::NoiseParameter&)’:
/opt/movidius/ssd-caffe/src/caffe/util/im_transforms.cpp:429:41: error: ‘CV_BGR2GRAY’ was not declared in this scope
     cv::cvtColor(in_img, grayscale_img, CV_BGR2GRAY);
                                         ^~~~~~~~~~~
/opt/movidius/ssd-caffe/src/caffe/util/im_transforms.cpp:430:43: error: ‘CV_GRAY2BGR’ was not declared in this scope
     cv::cvtColor(grayscale_img, out_img,  CV_GRAY2BGR);
                                           ^~~~~~~~~~~
/opt/movidius/ssd-caffe/src/caffe/util/im_transforms.cpp:442:42: error: ‘CV_BGR2YCrCb’ was not declared in this scope
       cv::cvtColor(out_img, ycrcb_image, CV_BGR2YCrCb);
                                          ^~~~~~~~~~~~
/opt/movidius/ssd-caffe/src/caffe/util/im_transforms.cpp:452:42: error: ‘CV_YCrCb2BGR’ was not declared in this scope
       cv::cvtColor(ycrcb_image, out_img, CV_YCrCb2BGR);
                                          ^~~~~~~~~~~~
/opt/movidius/ssd-caffe/src/caffe/util/im_transforms.cpp:465:42: error: ‘CV_BGR2YCrCb’ was not declared in this scope
       cv::cvtColor(out_img, ycrcb_image, CV_BGR2YCrCb);
                                          ^~~~~~~~~~~~
/opt/movidius/ssd-caffe/src/caffe/util/im_transforms.cpp:475:42: error: ‘CV_YCrCb2BGR’ was not declared in this scope
       cv::cvtColor(ycrcb_image, out_img, CV_YCrCb2BGR);
                                          ^~~~~~~~~~~~
/opt/movidius/ssd-caffe/src/caffe/util/im_transforms.cpp:488:22: error: ‘CV_IMWRITE_JPEG_QUALITY’ was not declared in this scope
     params.push_back(CV_IMWRITE_JPEG_QUALITY);
                      ^~~~~~~~~~~~~~~~~~~~~~~
/opt/movidius/ssd-caffe/src/caffe/util/im_transforms.cpp:491:33: error: ‘CV_LOAD_IMAGE_COLOR’ was not declared in this scope
     out_img = cv::imdecode(buf, CV_LOAD_IMAGE_COLOR);
                                 ^~~~~~~~~~~~~~~~~~~
/opt/movidius/ssd-caffe/src/caffe/util/im_transforms.cpp:491:33: note: suggested alternative: ‘CV_HAL_DFT_STAGE_COLS’
     out_img = cv::imdecode(buf, CV_LOAD_IMAGE_COLOR);
                                 ^~~~~~~~~~~~~~~~~~~
                                 CV_HAL_DFT_STAGE_COLS
/opt/movidius/ssd-caffe/src/caffe/util/im_transforms.cpp:539:38: error: ‘CV_BGR2HSV’ was not declared in this scope
     cv::cvtColor(out_img, hsv_image, CV_BGR2HSV);
                                      ^~~~~~~~~~
/opt/movidius/ssd-caffe/src/caffe/util/im_transforms.cpp:539:38: note: suggested alternative: ‘CV_32S’
     cv::cvtColor(out_img, hsv_image, CV_BGR2HSV);
                                      ^~~~~~~~~~
                                      CV_32S
/opt/movidius/ssd-caffe/src/caffe/util/im_transforms.cpp:546:38: error: ‘CV_BGR2Lab’ was not declared in this scope
     cv::cvtColor(lab_image, out_img, CV_BGR2Lab);
                                      ^~~~~~~~~~
/opt/movidius/ssd-caffe/src/caffe/util/im_transforms.cpp: In function ‘void caffe::AdjustSaturation(const cv::Mat&, float, cv::Mat*)’:
/opt/movidius/ssd-caffe/src/caffe/util/im_transforms.cpp:617:36: error: ‘CV_BGR2HSV’ was not declared in this scope
     cv::cvtColor(in_img, *out_img, CV_BGR2HSV);
                                    ^~~~~~~~~~
/opt/movidius/ssd-caffe/src/caffe/util/im_transforms.cpp:617:36: note: suggested alternative: ‘CV_32S’
     cv::cvtColor(in_img, *out_img, CV_BGR2HSV);
                                    ^~~~~~~~~~
                                    CV_32S
/opt/movidius/ssd-caffe/src/caffe/util/im_transforms.cpp:628:34: error: ‘CV_HSV2BGR’ was not declared in this scope
     cvtColor(*out_img, *out_img, CV_HSV2BGR);
                                  ^~~~~~~~~~
/opt/movidius/ssd-caffe/src/caffe/util/im_transforms.cpp:628:34: note: suggested alternative: ‘CV_SSE2’
     cvtColor(*out_img, *out_img, CV_HSV2BGR);
                                  ^~~~~~~~~~
                                  CV_SSE2
/opt/movidius/ssd-caffe/src/caffe/util/im_transforms.cpp: In function ‘void caffe::AdjustHue(const cv::Mat&, float, cv::Mat*)’:
/opt/movidius/ssd-caffe/src/caffe/util/im_transforms.cpp:651:36: error: ‘CV_BGR2HSV’ was not declared in this scope
     cv::cvtColor(in_img, *out_img, CV_BGR2HSV);
                                    ^~~~~~~~~~
/opt/movidius/ssd-caffe/src/caffe/util/im_transforms.cpp:651:36: note: suggested alternative: ‘CV_32S’
     cv::cvtColor(in_img, *out_img, CV_BGR2HSV);
                                    ^~~~~~~~~~
                                    CV_32S
/opt/movidius/ssd-caffe/src/caffe/util/im_transforms.cpp:662:34: error: ‘CV_HSV2BGR’ was not declared in this scope
     cvtColor(*out_img, *out_img, CV_HSV2BGR);
                                  ^~~~~~~~~~
/opt/movidius/ssd-caffe/src/caffe/util/im_transforms.cpp:662:34: note: suggested alternative: ‘CV_SSE2’
     cvtColor(*out_img, *out_img, CV_HSV2BGR);
                                  ^~~~~~~~~~
                                  CV_SSE2
src/caffe/CMakeFiles/caffe.dir/build.make:2606: recipe for target 'src/caffe/CMakeFiles/caffe.dir/util/im_transforms.cpp.o' failed
make[3]: *** [src/caffe/CMakeFiles/caffe.dir/util/im_transforms.cpp.o] Error 1
src/caffe/CMakeFiles/caffe.dir/build.make:2390: recipe for target 'src/caffe/CMakeFiles/caffe.dir/util/bbox_util.cpp.o' failed
make[3]: *** [src/caffe/CMakeFiles/caffe.dir/util/bbox_util.cpp.o] Error 1
/opt/movidius/ssd-caffe/src/caffe/util/io.cpp: In function ‘cv::Mat caffe::ReadImageToCVMat(const string&, int, int, int, int, bool)’:
/opt/movidius/ssd-caffe/src/caffe/util/io.cpp:86:34: error: ‘CV_LOAD_IMAGE_COLOR’ was not declared in this scope
   int cv_read_flag = (is_color ? CV_LOAD_IMAGE_COLOR :
                                  ^~~~~~~~~~~~~~~~~~~
/opt/movidius/ssd-caffe/src/caffe/util/io.cpp:86:34: note: suggested alternative: ‘CV_IS_IMAGE_HDR’
   int cv_read_flag = (is_color ? CV_LOAD_IMAGE_COLOR :
                                  ^~~~~~~~~~~~~~~~~~~
                                  CV_IS_IMAGE_HDR
/opt/movidius/ssd-caffe/src/caffe/util/io.cpp:87:5: error: ‘CV_LOAD_IMAGE_GRAYSCALE’ was not declared in this scope
     CV_LOAD_IMAGE_GRAYSCALE);
     ^~~~~~~~~~~~~~~~~~~~~~~
/opt/movidius/ssd-caffe/src/caffe/util/io.cpp: In function ‘cv::Mat caffe::DecodeDatumToCVMat(const caffe::Datum&, bool)’:
/opt/movidius/ssd-caffe/src/caffe/util/io.cpp:666:34: error: ‘CV_LOAD_IMAGE_COLOR’ was not declared in this scope
   int cv_read_flag = (is_color ? CV_LOAD_IMAGE_COLOR :
                                  ^~~~~~~~~~~~~~~~~~~
/opt/movidius/ssd-caffe/src/caffe/util/io.cpp:666:34: note: suggested alternative: ‘CV_IS_IMAGE_HDR’
   int cv_read_flag = (is_color ? CV_LOAD_IMAGE_COLOR :
                                  ^~~~~~~~~~~~~~~~~~~
                                  CV_IS_IMAGE_HDR
/opt/movidius/ssd-caffe/src/caffe/util/io.cpp:667:5: error: ‘CV_LOAD_IMAGE_GRAYSCALE’ was not declared in this scope
     CV_LOAD_IMAGE_GRAYSCALE);
     ^~~~~~~~~~~~~~~~~~~~~~~
src/caffe/CMakeFiles/caffe.dir/build.make:2654: recipe for target 'src/caffe/CMakeFiles/caffe.dir/util/io.cpp.o' failed
make[3]: *** [src/caffe/CMakeFiles/caffe.dir/util/io.cpp.o] Error 1
make[3]: Leaving directory '/opt/movidius/ssd-caffe/build'
CMakeFiles/Makefile2:235: recipe for target 'src/caffe/CMakeFiles/caffe.dir/all' failed
make[2]: *** [src/caffe/CMakeFiles/caffe.dir/all] Error 2
make[2]: Leaving directory '/opt/movidius/ssd-caffe/build'
Makefile:129: recipe for target 'all' failed
make[1]: *** [all] Error 2
make[1]: Leaving directory '/opt/movidius/ssd-caffe/build'
Installation failed. Error on line 650
Makefile:47: recipe for target 'install' failed
make: *** [install] Error 1
adithya-p commented 5 years ago

@patvdleer The issue is with the version of OpenCV you are using. Uninstall the 4.x version and install the 3.x version of OpenCV and recompile. The code appears to be written in the 3.x version of OpenCV. If you insist on compiling it with 4.x version, You have to make changes to the code by replacing 3.x with 4.x equivalent code.

Please refer to OpenCV 4.0.1 docs for more info.

Originally posted by @adithya-p in https://github.com/weiliu89/caffe/issues/968#issuecomment-458013266