Как быстро установить OpenCV with CUDA для Python и С++ без компиляции 2.5 часа

Print Friendly, PDF & Email

Маленькая предыстория … хотя СТОП, нет времени, надо дальше «пилить» :).

Хотя совсем чуть чуть опишу ситуацию.

Хотел быстро на Windows решить эту проблему, и оказалось что многое упирается в cmake и компиляцию opencv исходников и это может занимать около 2.5 часа и более. Поэтому я постарался пройти этот путь и выложить готовые результаты

Так же в начале можно прочесть подробно процесс самой компиляции в следующих Статьях [1] (Windows) и [2] (для Linux)

Задачи руководства:

            Ускорить внедрения поддержки NVIDIA CUDA для OpenCV и использования с Python или С++.

Решаема проблема:

Компиляция OpenCV с CUDA, может занимать более 2.5 часов.

Решение

Версии пакетов:

Данная реализация проверялась на следующих версиях пакетов:

Таблица версий пакетов:

 ПакетВерсия
1ОСWin 7 x64 SP1 , Win 10
2NVIDIA CUDA, cuDNN9.2, 10.x 9.2
3OpenCV4.4.x
4Python3.7

1. Сделать архив папки pythonsite-package/cv2 ( просто чтобы был на всякий)

2. В неё распаковать архив rls_python_opencv_cuda.7z

            Содержит следующие файлы:

                        1. opencv_world440.dll

                        2. opencv_img_hash440.dll

3. cv2.cp37-win_amd64.pyd

 Рис. 1. Содержание архива rls_python_opencv_cuda.7z

             Удивляет размер библиотеки, но что удивительно всё это добро жмётся в ~50 МБ.

3. Распаковать CUDA_bin_v9.2.7z в любую папку и прописать в PATH системы

К папке CUDA/bin и CUDA/libvnn

Примечание: Важно,  CUDA_bin_v9.2.7z можно и не качать, если у вас установлена одна из версий CUDA( проверить какая версия подходит для какой карты можно по [3]). Содержит в себе папку к откомпилированными библиотеками CUDA, качать релизы других версий можно по ссылке [4] .

Поэтому данный шаг можно и пропустить

4. Затем прописать в вашем коде, там где открывается модель сети следующее:

net.setPreferableBackend(cv2.dnn.DNN_BACKEND_CUDA)

net.setPreferableTarget(cv2.dnn.DNN_TARGET_CUDA)

            или качаем готовый пример [5]

Возможные трудности:

            На нескольких машинах была такая ошибка при запуске python приложения

«CUDA driver version is insufficient for CUDA runtime version….».

Которая решалась установкой новых драйверов NVIDIA по ссылке [4].

Ссылки на ресурсы для скачивания откомпилированной сборки:

1. !!! rls_python_opencv_cuda.7z

2. CUDA_bin_v9.2.7z

3. Пример AR по статье [2]

Так же понятно, что данная библиотека подходить не только для программирования для Python? Но так же может быть использована для программирования на С++

Ссылки на литературу, где описывается процесс компиляции:

1. Установка OpenCV + CUDA на Windows 

            (Очень подробно описан процесс, по нему и делал)

2. How to use OpenCV’s “dnn” module with NVIDIA GPUs, CUDA, and cuDNN (Статья AR про то как компилить под linux )-

3. Поддержка карт и версий CUDA — (кликайте по строке и раскрывается список)

4. CUDA Releases

5. Пример AR по статье [2]

ЗЫ : Если кто то  подобное сделал уже или тоже есть откомпилированные библиотеки под Linux, дайте знать.

ЗЗЫ:   Так же рад буду любой критике ( хотя не люблю её J, шутка J без неё саморазвития нету J, только будьте добрее)

Ссылка на данную статью на Хабр песочница :

https://habr.com/ru/sandbox/145056/

Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (1 оценок, среднее: 5,00 из 5)
Загрузка...

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

*

© 2014-2024 ElectroProg Все права защищены!

↓
↓