Opencv caffe/digits:code-11使用带有cv.resize的python层时出错

Opencv caffe/digits:code-11使用带有cv.resize的python层时出错,opencv,deep-learning,caffe,pycaffe,nvidia-digits,Opencv,Deep Learning,Caffe,Pycaffe,Nvidia Digits,我正在使用一个数字python层来裁剪每个随机大小裁剪的训练图像,然后使用cv2.resize方法来调整大小到预期的顶部尺寸 在脱机使用已保存的一批图像时,调整大小的效果与预期一样,numpy阵列的大小将正确调整为形状(128x3x227x227) 然而,当使用数字形式的python层时,我得到了代码-11错误。 Caffe输出日志显示: I1212 12:11:41.999608 14949 solver.cpp:291] Solving I1212 12:11:41.999610 14949

我正在使用一个数字python层来裁剪每个随机大小裁剪的训练图像,然后使用cv2.resize方法来调整大小到预期的顶部尺寸

在脱机使用已保存的一批图像时,调整大小的效果与预期一样,numpy阵列的大小将正确调整为形状(128x3x227x227)

然而,当使用数字形式的python层时,我得到了代码-11错误。 Caffe输出日志显示:

I1212 12:11:41.999608 14949 solver.cpp:291] Solving
I1212 12:11:41.999610 14949 solver.cpp:292] Learning Rate Policy: fixed
I1212 12:11:42.001058 14949 solver.cpp:349] Iteration 0, Testing net (#0)
I1212 12:11:42.001065 14949 net.cpp:693] Ignoring source layer train-data
*** Aborted at 1481541102 (unix time) try "date -d @1481541102" if you are using GNU date ***
PC: @     0x7f7c46b63acf cv::resize()
*** SIGSEGV (@0x0) received by PID 14949 (TID 0x7f7c564d0ac0) from PID 0; stack trace: ***
@     0x7f7c53b734b0 (unknown)
@     0x7f7c46b63acf cv::resize()
@     0x7f67e132d736 pyopencv_cv_resize()
@     0x7f7c547a8c55 PyEval_EvalFrameEx
@     0x7f7c548d301c PyEval_EvalCodeEx
@     0x7f7c548292e0 (unknown)
@     0x7f7c547fc1e3 PyObject_Call
@     0x7f7c5487031c (unknown)
@     0x7f7c547fc1e3 PyObject_Call
@     0x7f7c548d2447 PyEval_CallObjectWithKeywords
@     0x7f7c54830f17 PyEval_CallFunction
@     0x7f67f34add85 caffe::PythonLayer<>::Forward_cpu()
@     0x7f7c55bc6207 caffe::Net<>::ForwardFromTo()
@     0x7f7c55bc6577 caffe::Net<>::Forward()
@     0x7f7c55be8dda caffe::Solver<>::Test()
@     0x7f7c55be992e caffe::Solver<>::TestAll()
@     0x7f7c55be9a4c caffe::Solver<>::Step()
@     0x7f7c55bea5e9 caffe::Solver<>::Solve()
@           0x40cf6f train()
@           0x4088e8 main
@     0x7f7c53b5e830 __libc_start_main
@           0x4091b9 _start
@                0x0 (unknown)
I1212 12:11:41.999608 14949解算器。cpp:291]解算
I1212 12:11:41.999610 14949解算器。cpp:292]学习率策略:固定
I1212 12:11:42.001058 14949解算器。cpp:349]迭代0,测试网(#0)
I1212 12:11:42.001065 14949 net.cpp:693]忽略源层列车数据
***在1481541102(unix时间)中止。如果您使用的是GNU date,请尝试“date-d@1481541102”***
PC:@0x7f7c46b63acf cv::resize()
***PID 14949(TID 0x7f7c564d0ac0)从PID 0接收到SIGSEGV(@0x0);堆栈跟踪:***
@0x7f7c53b734b0(未知)
@0x7f7c46b63acf cv::resize()
@0x7f67e132d736 pyopencv_cv_resize()
@0x7f7c547a8c55比重瓶
@0x7f7c548d301c比重瓶
@0x7f7c548292e0(未知)
@0x7f7c547fc1e3 PyObject_调用
@0x7f7c5487031c(未知)
@0x7f7c547fc1e3 PyObject_调用
@0x7f7c548d2447 PyEval_CallObjectWithKeywords
@0x7f7c54830f17 PyEval_调用函数
@0x7f67f34add85 caffe::PythonLayer::Forward_cpu()
@0x7f7c55bc6207 caffe::Net::ForwardFromTo()
@0x7f7c55bc6577 caffe::Net::Forward()文件
@0x7f7c55be8dda caffe::解算器::测试()
@0x7f7c55be992e caffe::解算器::TestAll()
@0x7f7c55be9a4c caffe::解算器::步骤()
@0x7f7c55bea5e9 caffe::解算器::解算()
@0x40cf6f列()
@0x4088e8主
@0x7f7c53b5e830 uuu libc_start_main
@0x4091b9\u启动
@0x0(未知)
其他信息:

  • 脱机测试resize方法的环境(当它工作时)与我用于Digits/caffe的环境相同
  • 我可以改为使用scipy misc.imresize方法,它可以按预期工作,但是scipy方法不保留原始numpy值,将它们转换回0-256范围内的uint8,因此我不能使用该方法。它也比cv2慢得多(在离线批次上测试)
如果有人能建议一种替代的插值方法来调整numpy nd数组的大小,那也会非常有用


非常感谢

解决了,由于cmake标志和virtualenv,caffe安装出现了问题。 我运行的是virtualenv中的数字,opencv python版本是3.1.0 然而,在安装caffe时,cmake检查了系统opencv python版本(2.4.9),并相应地构建了caffe。 这就是错误的原因,未正确的python绑定。 为了解决这个问题,使用opencv 2.4.9创建了一个新的virtualenv,并从该环境中启动了digits