Утверждение Opencv не удалось с даркнетом

Раньше у меня был установлен OPENCV 3.4.1 на Ubuntu 18.04. Я попытался скомпилировать YOLO3 на своем компьютере, и он не смог скомпилировать, что привело меня к этой проблеме. Одно из предложений в этом выпуске предлагало использовать 3.4.0, и это вроде как сработало.

Я использовал эти параметры с cmake:

cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D WITH_CUDA=ON \
-D ENABLE_FAST_MATH=1 \
-D CUDA_FAST_MATH=1 \
-D WITH_CUBLAS=1 \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-3.4.0/modules \
-D BUILD_EXAMPLES=ON ..

тогда я сделал

make -j8    
sudo make install
sudo ldconfig

С opencv 3.4.0 я смог его скомпилировать. Однако, когда я пытаюсь запустить его, я получаю сообщение об ошибке (показано ниже). Это странно, потому что я только что установил 3.4.0, и он показывает какую-то ошибку, связанную с 3.4.1.

OpenCV(3.4.1) Error: Assertion failed ((flags & FIXED_TYPE) != 0) in type, file <local_path>/opencv-3.4.1/modules/core/src/matrix_wrap.cpp, line 807

Это не должно показывать эту ошибку 3.4.1, когда она даже не установлена. Я также удалил каталог, в котором я скомпилировал 3.4.1 ранее, и все равно ошибка указывает на удаленный каталог (<local_path>/opencv-3.4.1/). находится в моей домашней папке с множеством каталогов со странными именами. Поэтому я исключил его, чтобы избежать путаницы.

Я смог подтвердить, что 3.4.0 установлен с помощью:

# han @ falcon in ~ [19:36:41] 
$ /usr/local/bin/opencv_version
3.4.0

Я хочу знать, что вызывает упомянутую выше ошибку (связанную с утверждением)


person Tom Riddle    schedule 23.06.2018    source источник
comment
вероятно, библиотеки 3.4.2 все еще установлены в системе, и символические ссылки opencv libs все еще указывают на них. попробуйте команду locate opencv*.so или sth.   -  person Micka    schedule 23.06.2018
comment
Это произошло потому, что sudo apt-get purge libopencv* не дал никакого результата, когда я запустил его на ZSH (получил сообщение об ошибке, говорящее, что совпадений не найдено: libopencv*). Но та же команда в bash удалила эти файлы конфигурации, и все работает нормально.   -  person Tom Riddle    schedule 23.06.2018


Ответы (1)


Это произошло потому, что sudo apt-get purge libopencv* не дал никакого результата, когда я запустил его на ZSH (получил сообщение об ошибке «совпадения не найдено: libopencv *», которую я пропустил). Но та же команда в bash удалила файлы конфигурации из более ранней установки.

Darknet не будет компилироваться с opencv 3.4.1. Поэтому я предлагаю понизить opencv до 3.4.0. Если вы хотите запустить его на 3.4.1, изучите эту проблему на Github. .

person Tom Riddle    schedule 23.06.2018