Когда OpenCV и tenorflow используют libgtk, возникает ошибка сегментации.Ниже я привел простой скрипт, который создает проблему, соответствующие версии аппаратного и программного обеспечения и трассировку стека.FWITW, те же версии opencv, tenorflow, pandas и т. Д. Работали очень хорошо, когда я установил их на другую машину в марте.Не уверен, что именно изменилось.
Как создать проблему
Следующий скрипт работает просто отлично.Захватывает и отображает фрейм как ожидаетсяНапример ..
import tensorflow
import cv2
cv2.namedWindow('frame')
Соответствующая информация об аппаратном и программном обеспечении :
Аппаратная архитектура x86 (ядро Intel I5) GPU GTX 1060 OS Linux Mint 18.2
Ядро Ubuntu версии 4.8.0-53-generic # 56 ~ 16.04.1-Ubuntu OpenCV версия 3.4 Tensorflow версия 1.4.1 Pandas версия 0.20.1
CUDA 9.1 драйвер Nvidia 396.26
Несколько вещей, которые я пробовал 1. Компиляция OpenCV с GTK2.4 и GTK3.Тот же результат 2. Изменение версии драйвера NVIDIA
Я планирую попробовать CUDA 9.0 дальше, хотя, честно говоря, я не знаю, какое это имеет отношение к чему-либо.
Обратный след ошибки сегментации (gdb) bt
#0 0x000000000052b88c in ?? ()
#1 0x00000000005653ab in PyErr_WarnEx ()
#2 0x00007fff840f7938 in ?? () from /usr/lib/python2.7/dist-packages/gobject/_gobject.x86_64-linux-gnu.so
#3 0x00007fffd539e9a4 in g_logv () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#4 0x00007fffd539ebcf in g_log () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#5 0x00007fffd5690d7d in ?? () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#6 0x00007fffd569107b in g_type_register_static () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#7 0x00007fffd5691695 in g_type_register_static_simple () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#8 0x00007fffd5e173a4 in gdk_display_manager_get_type () from /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
#9 0x00007fffd5e17409 in gdk_display_manager_get () from /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
#10 0x00007fffd62fcc8b in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#11 0x00007fffd62d420b in ?? () from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#12 0x00007fffd53a2f67 in g_option_context_parse () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#13 0x00007fffd62d3fe8 in gtk_parse_args () from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#14 0x00007fffd62d4049 in gtk_init_check () from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#15 0x00007fffd62d4099 in gtk_init () from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
#16 0x00007fffeef176c3 in cvInitSystem () from /usr/local/lib/libopencv_highgui.so.3.4
#17 0x00007fffeef1a764 in cvNamedWindow () from /usr/local/lib/libopencv_highgui.so.3.4
#18 0x00007fffeef1aead in cvShowImage () from /usr/local/lib/libopencv_highgui.so.3.4
#19 0x00007fffeef11349 in cv::imshow(cv::String const&, cv::_InputArray const&) () from /usr/local/lib/libopencv_highgui.so.3.4
#20 0x00007ffff67078d3 in pyopencv_cv_imshow(_object*, _object*, _object*) () from /usr/local/lib/python2.7/dist-packages/cv2.so
#21 0x00000000004bc3fa in PyEval_EvalFrameEx ()
#22 0x00000000004c136f in PyEval_EvalFrameEx ()
#23 0x00000000004c136f in PyEval_EvalFrameEx ()
#24 0x00000000004b9ab6 in PyEval_EvalCodeEx ()
#25 0x00000000004eb30f in ?? ()
#26 0x00000000004e5422 in PyRun_FileExFlags ()
#27 0x00000000004e3cd6 in PyRun_SimpleFileExFlags ()
#28 0x0000000000493ae2 in Py_Main ()
#29 0x00007ffff7810830 in __libc_start_main (main=0x4934c0 <main>, argc=2, argv=0x7fffffffe058, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>,
stack_end=0x7fffffffe048) at ../csu/libc-start.c:291
#30 0x00000000004933e9 in _start ()