【问题标题】:caffe is conflicted with python cv2caffe 与 python cv2 冲突
【发布时间】:2019-04-11 17:16:32
【问题描述】:

我想用 python 捕捉相机信息,用 caffe 预测。同时import caffe和import cv2时,如代码:

import caffe
import cv2

# caffe.set_mode_cpu()
cap = cv2.VideoCapture(0)
while(1):
    # get a frame
    ret, frame = cap.read()
    # show a frame
    cv2.imshow("capture", frame)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
cap.release()
cv2.destroyAllWindows()

会出现以下错误:

objc[35793]:类 CaptureDelegate 在 /usr/local/opt/opencv/lib/libopencv_videoio.3.4.dylib (0x104dc0938) 和 /Users/python-envs/py27/lib/python2.7/site 中实现-packages/cv2/cv2.so (0x1111d9380)。将使用两者之一。哪一个是未定义的。 src/tcmalloc.cc:332] 尝试释放无效指针 0x7f9f37403fc0

我知道原因是,caffe 和 cv2 使用不同的 opencv lib,但是如何解决这个问题呢?更重要的是,我不想重建 caffe

【问题讨论】:

    标签: opencv caffe


    【解决方案1】:

    这是因为 caffe 和 opencv 使用不同的内存分配器。 Caffe 使用 tcmalloc 但 opencv 使用默认的。 leveldb 依赖于 gperftools,其中包含 tcmalloc。 看看你是否在 caffe 的 MakeFile.config 中设置了 USE_LEVELDB := 0 。如果还没有,最好设置 USE_LEVELDB := 0 并重建 caffe。或者你可以把opencv使用的内存分配器改成和caffe一样。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-25
      • 1970-01-01
      • 2020-06-02
      • 1970-01-01
      • 2017-08-14
      • 1970-01-01
      • 2013-04-29
      • 1970-01-01
      相关资源
      最近更新 更多