summarylogtreecommitdiffstats
path: root/caffe2-1.0rc1-opencv4-fix.patch
diff options
context:
space:
mode:
Diffstat (limited to 'caffe2-1.0rc1-opencv4-fix.patch')
-rw-r--r--caffe2-1.0rc1-opencv4-fix.patch106
1 files changed, 106 insertions, 0 deletions
diff --git a/caffe2-1.0rc1-opencv4-fix.patch b/caffe2-1.0rc1-opencv4-fix.patch
new file mode 100644
index 000000000000..94cb614c5477
--- /dev/null
+++ b/caffe2-1.0rc1-opencv4-fix.patch
@@ -0,0 +1,106 @@
+diff -Naurp a/binaries/convert_encoded_to_raw_leveldb.cc b/binaries/convert_encoded_to_raw_leveldb.cc
+--- a/binaries/convert_encoded_to_raw_leveldb.cc 2018-10-02 04:54:52.000000000 +0000
++++ b/binaries/convert_encoded_to_raw_leveldb.cc 2018-11-25 18:02:35.117906145 +0000
+@@ -109,7 +109,7 @@ void ConvertToRawDataset(
+ cv::Mat img = cv::imdecode(
+ cv::Mat(1, &encoded_size, CV_8UC1,
+ const_cast<char*>(encoded_image.data())),
+- caffe2::FLAGS_color ? CV_LOAD_IMAGE_COLOR : CV_LOAD_IMAGE_GRAYSCALE);
++ caffe2::FLAGS_color ? cv::IMREAD_COLOR : cv::IMREAD_GRAYSCALE);
+ cv::Mat resized_img;
+ int scaled_width, scaled_height;
+ if (caffe2::FLAGS_warp) {
+diff -Naurp a/binaries/make_image_db.cc b/binaries/make_image_db.cc
+--- a/binaries/make_image_db.cc 2018-10-02 04:54:52.000000000 +0000
++++ b/binaries/make_image_db.cc 2018-11-25 18:06:55.018892401 +0000
+@@ -140,8 +140,8 @@ class Converter {
+ // Load image
+ cv::Mat img = cv::imread(
+ input_folder + pair.first,
+- caffe2::FLAGS_color ? CV_LOAD_IMAGE_COLOR
+- : CV_LOAD_IMAGE_GRAYSCALE);
++ caffe2::FLAGS_color ? cv::IMREAD_COLOR
++ : cv::IMREAD_GRAYSCALE);
+
+ // Resize image
+ cv::Mat resized_img;
+diff -Naurp a/caffe2/contrib/cuda-convnet2/make-data/pyext/src/pyext.cpp b/caffe2/contrib/cuda-convnet2/make-data/pyext/src/pyext.cpp
+--- a/caffe2/contrib/cuda-convnet2/make-data/pyext/src/pyext.cpp 2018-11-25 13:49:49.972477452 +0000
++++ b/caffe2/contrib/cuda-convnet2/make-data/pyext/src/pyext.cpp 2018-11-25 13:42:33.000000000 +0000
+@@ -93,7 +93,7 @@ void DecoderThread::makeJPEG(int idx) {
+ size_t src_len = PyString_GET_SIZE(pySrc);
+ vector<uchar> src_vec(src, src + src_len);
+
+- cv::Mat decoded_mat = cv::imdecode(cv::Mat(src_vec), CV_LOAD_IMAGE_COLOR);
++ cv::Mat decoded_mat = cv::imdecode(cv::Mat(src_vec), cv::IMREAD_COLOR);
+ assert(decoded_mat.channels() == 3);
+
+ /*
+diff -Naurp a/caffe2/image/image_input_op.h b/caffe2/image/image_input_op.h
+--- a/caffe2/image/image_input_op.h 2018-10-02 04:54:52.000000000 +0000
++++ b/caffe2/image/image_input_op.h 2018-11-25 13:51:25.414641803 +0000
+@@ -465,7 +465,7 @@ bool ImageInputOp<Context>::GetImageAndL
+ datum.data().size(),
+ CV_8UC1,
+ const_cast<char*>(datum.data().data())),
+- color_ ? CV_LOAD_IMAGE_COLOR : CV_LOAD_IMAGE_GRAYSCALE);
++ color_ ? cv::IMREAD_COLOR : cv::IMREAD_GRAYSCALE);
+ if (src.rows == 0 or src.cols == 0) {
+ num_decode_errors_in_batch_++;
+ src = cv::Mat::zeros(cv::Size(224, 224), CV_8UC3);
+@@ -540,7 +540,7 @@ bool ImageInputOp<Context>::GetImageAndL
+ &encoded_size,
+ CV_8UC1,
+ const_cast<char*>(encoded_image_str.data())),
+- color_ ? CV_LOAD_IMAGE_COLOR : CV_LOAD_IMAGE_GRAYSCALE);
++ color_ ? cv::IMREAD_COLOR : cv::IMREAD_GRAYSCALE);
+ if (src.rows == 0 or src.cols == 0) {
+ num_decode_errors_in_batch_++;
+ src = cv::Mat::zeros(cv::Size(224, 224), CV_8UC3);
+@@ -681,7 +681,7 @@ bool ImageInputOp<Context>::GetImageAndL
+ if (out_c == src.channels()) {
+ *img = src;
+ } else {
+- cv::cvtColor(src, *img, (out_c == 1) ? CV_BGR2GRAY : CV_GRAY2BGR);
++ cv::cvtColor(src, *img, (out_c == 1) ? cv::COLOR_BGR2GRAY : cv::COLOR_GRAY2BGR);
+ }
+
+ // Note(Yangqing): I believe that the mat should be created continuous.
+diff -Naurp a/caffe2/video/optical_flow.cc b/caffe2/video/optical_flow.cc
+--- a/caffe2/video/optical_flow.cc 2018-10-02 04:54:52.000000000 +0000
++++ b/caffe2/video/optical_flow.cc 2018-11-25 20:35:42.327123803 +0000
+@@ -7,7 +7,11 @@ void OpticalFlowExtractor(
+ const cv::Mat& curr_gray,
+ const int flow_alg_type,
+ cv::Mat& flow) {
++#if CV_MAJOR_VERSION >= 4
++ cv::Ptr<cv::DISOpticalFlow> tvl1 = cv::DISOpticalFlow::create();
++#else
+ cv::Ptr<cv::DualTVL1OpticalFlow> tvl1 = cv::DualTVL1OpticalFlow::create();
++#endif
+ switch (flow_alg_type) {
+ case FLowAlgType::FarnebackOpticalFlow:
+ cv::calcOpticalFlowFarneback(
+diff -Naurp a/cmake/Dependencies.cmake b/cmake/Dependencies.cmake
+--- a/cmake/Dependencies.cmake 2018-10-02 04:54:52.000000000 +0000
++++ b/cmake/Dependencies.cmake 2018-11-25 18:14:31.186866421 +0000
+@@ -278,11 +278,15 @@ endif()
+
+ # ---[ OpenCV
+ if(USE_OPENCV)
+- # OpenCV 3
+- find_package(OpenCV 3 QUIET COMPONENTS core highgui imgproc imgcodecs videoio video)
++ # OpenCV 4
++ find_package(OpenCV 4 QUIET COMPONENTS core highgui imgproc imgcodecs optflow videoio video)
+ if(NOT OpenCV_FOUND)
+- # OpenCV 2
+- find_package(OpenCV QUIET COMPONENTS core highgui imgproc)
++ # OpenCV 3
++ find_package(OpenCV 3 QUIET COMPONENTS core highgui imgproc imgcodecs videoio video)
++ if(NOT OpenCV_FOUND)
++ # OpenCV 2
++ find_package(OpenCV QUIET COMPONENTS core highgui imgproc)
++ endif()
+ endif()
+ if(OpenCV_FOUND)
+ include_directories(SYSTEM ${OpenCV_INCLUDE_DIRS})