Невозможно скомпилировать OpenCV с выводом OpenVino, cpuid.txt не может быть прочитан

Я пытаюсь скомпилировать OpenCV с выводом OpenVino, как описано здесь:

https://github.com/opencv/opencv/wiki/Intel's-Deep-Learning-Inference-Engine-backend

но когда я пытаюсь сгенерировать проект MSVC (2017) в Windows, я получаю эту ошибку:

CMake Error at C:/local/Intel/computer_vision_sdk_2018.5.445/deployment_tools/inference_engine/src/extension/cmake/CPUID.cmake:324 (file):
  file STRINGS file "C:/local/opencv-build/cpuid.txt" cannot be read.
Call Stack (most recent call first):
  C:/local/Intel/computer_vision_sdk_2018.5.445/deployment_tools/inference_engine/src/extension/cmake/feature_defs.cmake:17 (include)
  C:/local/Intel/computer_vision_sdk_2018.5.445/deployment_tools/inference_engine/src/extension/CMakeLists.txt:9 (include)

Используемые инструменты:

  • Исходный код OpenCV 4.0.0
  • OpenVino 5.0.1
  • Visual Studio 2017
  • CMake-Gui 3.13

2 ответа

Я также встретил эту ошибку, но я изменил эту строку CPUID.cmake, как показано в следующем:

if(HAVE_CPUID_INFO)
    set(_CPUID_INFO "/home/huihui/intel/computer_vision_sdk_2018.4.420/inference_engine/build/cpuid.txt")

Теперь ошибка исправлена.

Я думаю, что вы установили неподходящие версии для некоторых инструментов. Пожалуйста, попробуйте использовать CMake 3.4 или выше, который необходим для сборки дистрибутива Intel® OpenVINO.

Пожалуйста, попробуйте выполнить шаги из " https://software.intel.com/en-us/articles/OpenVINO-Install-Windows" для установки и убедитесь, что вы можете скомпилировать OpenCV с выводом OpenVino.

На OpenVino есть сообщение на форуме, которое указывает на какое-то хакерское решение этой проблемы. Вот предлагаемое решение:

В ...\Intel\computer_vision_sdk_2018.5.456\deployment_tools\inference_engine\src\extension\cmake\CPUID.cmake (при условии, что вы следовали установке по умолчанию OpenVino Toolkit, в противном случае вам сначала нужно будет найти этот файл в том месте, где вы его установили), попробуйте внести следующие изменения в строку 251:

// std::ofstream fo(\"cpuid.txt\"); old line
std::ofstream fo(\"${CMAKE_BINARY_DIR}/cpuid.txt\");

* Убедитесь, что имя переменной fo согласуется с кодом, следующим за ним.

Это потенциально может избежать появления несовместимых путей, поскольку строка 319 этого же файла получает текстовый файл, подобный этому:

set(_CPUID_INFO "${CMAKE_BINARY_DIR}/cpuid.txt")

Из трассировки стека, похоже, ваш ${CMAKE_BINARY_DIR} переменная установлена ​​в C:/local/opencv-build так что вы должны ожидать cpuid.txt быть сгенерированным там.

Другие вопросы по тегам